量化面试 · 系统速学

机器学习理论:量化面试的 20 条主线

从损失函数与梯度推导,到树模型、PCA、时间验证与金融数据边界。重点是如何解释选择、检验假设,并把预测接到执行。

开始前:从两个数的预测看懂矩阵与梯度

本书把“用输入算预测、衡量错多少、调整参数”反复用于不同模型。下面先用能手算的数把符号接起来;不需要先读线性代数教材。概率与平均的符号也在这里给出,读本书时无需依赖另一份PDF。

1. 加权平均、Σ、log与损失

Σ表示把下标指定的项相加,Π表示相乘。三个误差1、−2、0的平方和Σeᵢ²=1+4+0=5,平均平方误差为5/3。“损失”就是给一次预测错误打的罚分;平方损失把误差平方,所以错2的惩罚是错1的4倍。“期望”E是按发生概率加权的平均;Var是减去均值后平方的平均,衡量波动大小。P(Y=1|X=x)读作已知输入x时标签为1的概率。

log或ln是以e为底的自然对数,将乘法变加法且不改变正数的大小顺序。例如两个独立正确事件概率0.8、0.5,联合概率为0.4,log0.4=log0.8+log0.5。常用导数(log x)′=1/x;最大似然先把概率乘积取log,正是为了把求导变成逐项相加。

2. 向量、内积、矩阵和转置

向量是按位置排列的一串数。输入x=(2,3),权重w=(4,−1),内积wᵀx就是对应位置乘完相加:4×2+(−1)×3=5;再加截距b=1,预测得到6。转置ᵀ把一列写成一行,使“行乘列”的写法符合维度。长度平方||x||²=xᵀx=2²+3²=13。

矩阵把多条输入摞成表:X的两行为(1,2)、(1,3),第一列1可表示截距。β=(1,2)时,Xβ的两项为1×1+2×2=5、1×1+3×2=7,即两条样本预测。Xᵀ把行列互换,其两行为(1,1)、(2,3)。所以n行d列的X乘d维参数得到n维预测,Xᵀ再乘n维误差回到d维参数方向。

3. 逆矩阵是在解方程,正交是在说内积为0

标量2w=6可除2得到w=3;矩阵逆起到类似“撤销变换”的作用。对角矩阵diag(2,4)把(w₁,w₂)变成(2w₁,4w₂),逆diag(1/2,1/4)把它变回来。若两列完全相同,就无法从输出区分“第一列权重加1”与“第二列权重加1”,此时通常没有唯一逆。实际解线性方程不必真的先把逆算出来。

正交是内积为0,例如(1,1)与(1,−1)内积1−1=0。把观测y=(2,0)用v=(1,1)的倍数近似,预测为(av₁,av₂)=(a,a),平方误差(2−a)²+a²在a=1最小。预测(1,1)与残差(1,−1)恰好正交;这就是“正交投影”:在允许的方向集合里找最近的点。回归把一个方向扩展成X各列共同张成的集合。

4. 特征值看某个方向被放大多少,半正定保证平方量不为负

对矩阵S=diag(2,1),沿(1,0)方向输入后得到(2,0),方向不变只放大2倍;这个方向叫特征向量,倍数2叫特征值。沿(0,1)则倍数1。写作Sv=λv。PCA就在找数据变化最大的方向;它最终转成“找最大的λ”。

对称矩阵S若对任意v都有vᵀSv≥0,叫半正定,缩写PSD。例如上例v=(a,b)时vᵀSv=2a²+b²≥0。协方差矩阵必须满足这点,因为任何线性组合的方差都不能为负。XᵀX也一定半正定,因为vᵀXᵀXv=||Xv||²;若非零v也必为正,才叫正定。后文Hessian是所有二阶导数组成的矩阵,用来描述不同方向的局部弯曲程度。

5. 导数、梯度与“为什么等于0”

一维目标J(w)=(w−3)²。w从1增加一点h,变化率[J(1+h)−J(1)]/h=−4+h,h趋0得到导数−4。它表示w增大时损失正在减小。梯度下降沿导数相反方向走:学习率η=0.25时,w新=1−0.25×(−4)=2,损失从4降到1。学习率就是每次走多大步,符号∇表示梯度。

两个参数时J=(w₁−1)²+(w₂−2)²,梯度是(2(w₁−1),2(w₂−2))。在(0,0)处为(−2,−4),η=0.5的一步恰到(1,2)。每个分量都是“固定其他参数,只改变这一项”的偏导数。平滑内部最优点需要梯度为0,但这不是充分条件,例如w³在0导数为0却不是最小点;边界最优也未必梯度为0。

链式法则负责串起中间步骤:若z=2w、L=z²,则dL/dw=(dL/dz)(dz/dw)=2z×2=8w;直接把L=4w²求导也为8w。反向传播就是在更大的计算链上重复这件事。若看到∫,读作把小贡献连续累加:∫₀²x dx等于底2、高2三角形面积2;它主要出现在概率加权与贝叶斯预测中。

从题目到模型:这本笔记怎样组织

以“预测明天上涨概率”为例。先要确定今天何时作出预测;接着把此时可见的信息变成特征;逻辑回归通过伯努利似然得到交叉熵,优化器用梯度拟合参数;验证必须把未来隔开;最后上涨概率还需要结合收益幅度、交易成本与风险决定仓位。这条链中任意一步不成立,后面的模型精度就很难解释。

本书把知识压成七组:A组说明预测对象与基本模型;B组说明复杂度与优化;C组从单树推到集成;D组处理表示、几何与概率模型;E组处理真实数据验证;F组补齐神经网络、隐变量与泛化;G组把所有内容组装成一段完整的研究面试回答。先掌握线性和逻辑回归的手推,再看更复杂方法,能减少重复记忆。

符号约定:X通常是n行d列设计矩阵,y是n维标签,w或β是参数;L是单样本损失,R是总体期望风险。训练参数由训练集决定,超参数由验证选择;最终测试只用于完成选择后的评估。所有模型公式均是教学设定下的结论。

学习时把三个动作串起来

先说清随机性或数据来自哪里,再手推一个最小例子,最后指出结论成立的条件。能复述公式只是第一步;能解释公式为什么在这道题里合法、换条件后哪里先失效,才是迁移能力。

下面每节均包含例子、推导、面试追问、易错点与关联方向。建议先遮住解答,用纸写出状态、目标和第一步;卡住时只看下一条推导,再自行继续。

A · 先定义预测时真正知道什么

01 · 监督学习、经验风险与标签设计

这节先认清:“监督”表示训练数据有已知答案y;标签就是这个答案,特征是预测时输入x。“风险”在学习理论中指平均损失,未必是金融损失风险;经验风险用有限训练样本平均代替未知总体平均。下面先定义时间和标签,再决定怎样给预测错误打分。

从一个例子开始

在每天收盘时预测下一天收益,输入只能使用当天收盘时已发布的数据。若把“下一天全日最高价”做特征,即使线性模型也能获得虚假的好成绩。

机制与推导步骤

  1. 定义预测时点t、特征Xₜ、目标Yₜ。例如Yₜ=(Pₜ₊₁−Pₜ)/Pₜ。每个特征都需有可用时间戳,不只是事件所属日期。
  2. 选择损失:平方损失对应条件均值,绝对损失对应条件中位数,对数损失对应条件概率。先说明下游需要什么,再选择目标。
  3. 总体风险R(f)=E[L(Y,f(X))]未知,用训练样本平均损失估计。但最小训练损失可能记住噪声,所以还需限制模型与独立验证。

再把中间一步算开:两种等概率标签y=1或3,若始终预测c=2,平均平方损失[(1−2)²+(3−2)²]/2=1;若预测c=1,损失为[0²+2²]/2=2。把一般目标[(1−c)²+(3−c)²]/2对c求导得2c−4,最小点c=2,说明平方损失为什么会把模型推向条件均值。

\[R(f)=E[L(Y,f(X))],\qquad \hat R_n(f)=\frac1n\sum_{i=1}^nL(y_i,f(x_i))\]

面试追问:用价格水平还是收益率作标签?

取决于决策。价格水平往往带趋势且尺度跨资产差异大;收益率更接近单位资本损益。若关心相对横截面排序,可用去市场收益或排序目标,但要说明去除基准是否可在预测时得到。

易错点与边界

标签定义中的未来区间可以是合法目标,但不能进入特征。把目标平滑到包含未来样本再当输入,是泄漏。观察到正式收盘价后,通常也不能再假设按同一收盘价无成本成交;需把实际可执行时点与标签起点对齐。

识别线索与迁移:先完成预测时间→可用信息→标签区间→损失→决策的链路,再谈模型结构。

A · 投影而不是背逆矩阵

02 · 线性回归:几何、概率与数值解

这节先认清:普通最小二乘(OLS)就是让平方残差总和最小。设计矩阵X是把每条样本写成一行的输入表;参数β把各列按权重组合。残差y−Xβ是每条样本的预测错误。正规方程不是额外假设,而是平方损失每个参数的导数为0后得到的联立方程;投影的意思可用前面(2,0)投到(a,a)的例子核对。

从一个例子开始

数据点(x,y)=(1,2),(2,3),(3,5),含截距的最小二乘拟合得到斜率1.5、截距1/3。预测并不逐点穿过,但残差与常数列、x列正交。

机制与推导步骤

  1. 目标J(β)=||y−Xβ||²/2,其中X第一列全1表示截距。展开后梯度Xᵀ(Xβ−y),置0得到正规方程。
  2. 若X列满秩,β̂=(XᵀX)⁻¹Xᵀy。几何上,Xβ̂是y到X列空间的正交投影,残差处于正交补。
  3. 若误差独立高斯N(0,σ²),负log似然只比平方误差差一个正比例系数与常数,因此OLS也是MLE。实际计算可用lstsq等稳定最小二乘求解器,不必显式求逆。QR把列方向正交化后解三角方程,SVD按独立方向及放大倍数分解,都是为避免直接求逆放大数值误差的计算方法。

再把中间一步算开:一元例子的斜率也可不靠矩阵手算:x均值2,y均值10/3。斜率为Σ(x−2)(y−10/3)/Σ(x−2)²=(4/3+5/3)/2=1.5,截距为10/3−1.5×2=1/3。得到预测11/6、10/3、29/6,残差之和为0,与含截距时的正规方程一致。

\[\nabla J=X^T(X\beta-y),\quad X^TX\hat\beta=X^Ty,\quad X^T(y-X\hat\beta)=0\]

面试追问:两个特征完全共线会怎样?

XᵀX奇异,系数不唯一;训练预测投影仍可能唯一。伪逆选最小范数解,ridge通过加入λI使非截距参数更稳定。应同时检查数据、共线性与数值条件数。

易错点与边界

OLS点估计不要求误差正态;正态用于特定MLE解释和精确小样本推断。因果解释还需外生性。

识别线索与迁移:链接到概率统计的回归推断、PCA与岭回归;面试能从损失推到梯度再说数值实现。

A · 概率模型直接决定损失

03 · 逻辑回归:为什么交叉熵梯度这么简单

这节先认清:逻辑回归的“回归”指先用线性函数算分数z,再用sigmoid把任意实数压到0到1;z=0对应p=0.5。交叉熵在本节就是伯努利答案的负log概率,给真实标签很低概率时罚得重。Hessian记录二阶弯曲,PSD表示任意方向的二阶弯曲不向下。这样的损失是凸的,可理解为没有另外藏着更低谷底的碗形曲面;在定义域内部,梯度为0就达到全局最小。

从一个例子开始

预测上涨概率p=0.8,真实标签y=1,单样本交叉熵为−log0.8≈0.223。若实际y=0,损失−log0.2≈1.609,过度自信的错误惩罚更大。

机制与推导步骤

  1. 令z=wᵀx+b,p=σ(z)=1/(1+e^(−z)),建模Y|X为Bernoulli(p)。
  2. 负log似然ℓ=−ylogp−(1−y)log(1−p)。对p求导,再乘dp/dz=p(1−p),约去后得到∂ℓ/∂z=p−y。
  3. 链式法则得到∇wℓ=(p−y)x。Hessian为XᵀWX,其中W对角元素pᵢ(1−pᵢ)非负,所以损失凸;完全线性可分时无正则MLE参数可能发散。

再把中间一步算开:链式求导中被约掉的项是:∂ℓ/∂p=−y/p+(1−y)/(1−p)=(p−y)/[p(1−p)],再乘dp/dz=p(1−p),只剩p−y。若x=2、y=1、z=0,则p=0.5,参数梯度(p−y)x=−1;沿负梯度增加权重,会提高真实正类的预测概率。

\[\ell(z,y)=\log(1+e^z)-yz,\qquad \nabla_w\ell=(\sigma(z)-y)x\]

面试追问:分类阈值为什么未必是0.5?

若假阳性成本C_FP,假阴性成本C_FN,预测正类的条件成本为C_FP(1−p),负类为C_FN p,因此当p>C_FP/(C_FP+C_FN)时选正类。概率估计和决策阈值是两件事。

易错点与边界

数值实现用logaddexp(0,z)−yz避免exp溢出;样本重加权会改变目标分布和校准。

识别线索与迁移:广义线性模型、交叉熵、概率校准、成本敏感交易门槛。

B · 用误差形状决定下一步

04 · 偏差方差分解与学习曲线

这节先认清:偏差是“反复训练得到的平均预测”与真实规律的距离;方差是每次换训练集后预测围绕这个平均怎样波动。不可约噪声是即便知道真实平均规律也无法预测的随机部分。比较训练/验证误差是在找这几类原因的线索,不能直接把一个误差数命名为偏差或方差。

从一个例子开始

用很深的树拟合20个带噪声样本,训练误差几乎0,但换一批样本预测大幅改变;这是高方差。只用常数预测又无法跟随真实曲线,是高偏差。

机制与推导步骤

  1. 固定测试位置x,真实Y=f*(x)+ε,且E[ε|x]=0、Var(ε|x)=σ²。训练集D变化,使预测f̂_D(x)也变化。
  2. 加减E_D[f̂_D(x)]展开平方。噪声交叉项为0,得到测试MSE=偏差²+训练集引起的方差+不可约噪声。
  3. 若训练与验证误差都高,检查欠拟合、特征或标签质量;训练低验证高,检查复杂度、样本量、泄漏与分布差异。学习曲线只能诊断线索,还需对照实验。
\[E_{D,\epsilon}[(Y-\hat f_D(x))^2]=\left(f^*(x)-E_D\hat f_D(x)\right)^2+\operatorname{Var}_D(\hat f_D(x))+\sigma^2\]

面试追问:模型越大测试误差一定越大吗?

不一定。经典U形偏差方差图并非普遍规律;过参数化中可能出现双下降,优化、正则化和数据结构会改变趋势。实际用严格验证测量,而非仅从参数量推断。

易错点与边界

分解是固定x并对训练集和测试噪声求期望;单次训练误差不能直接读出方差分量。

识别线索与迁移:ridge减少估计方差、bagging平均噪声、更多数据何时有效。

B · 不同约束改变不同几何

05 · L2、L1与早停:如何让解稳定

这节先认清:正则化是在原损失之外惩罚过大的参数。L2为平方和,L1为绝对值之和;惩罚强度λ越大,越愿意牺牲拟合来换稳定性。Ridge是L2回归,Lasso是L1回归;soft-threshold是每个坐标先减λ,不够λ就变0的操作,显式公式只在本节指定正交条件下成立。

从一个例子开始

两个高度相关因子都可解释收益,OLS系数可能一个很大一个很负,预测变化小但参数不稳。L2收缩整体幅度,L1更容易把部分系数压到0。

机制与推导步骤

  1. Ridge目标为||y−Xβ||²/2+λ||β||²/2,梯度置0得(XᵀX+λI)β=Xᵀy。λ>0抬高小特征值,降低对噪声敏感性。
  2. 对已标准化且列正交的设计,L1目标的每个坐标是(βⱼ−zⱼ)²/2+λ|βⱼ|,在正负区间分段求导,得到soft-threshold。
  3. 早停限制优化时间,在某些线性梯度下降情形形成对不同奇异方向的收缩;它与L2有联系但一般不完全等价。

再把中间一步算开:先在单坐标、无相关的最简单情况看L1:目标是(β−z)²/2+λ|β|。假设β>0,导数β−z+λ=0给β=z−λ;只有z>λ时才符合β>0。负半轴同理;|z|≤λ时两侧导数把最小点夹在0。z=2、λ=0.5得到1.5,z=0.2时得到0。

\[\hat\beta_{\rm ridge}=(X^TX+\lambda I)^{-1}X^Ty,\quad \hat\beta_j^{\rm lasso}=\operatorname{sign}(z_j)(|z_j|-\lambda)_+\quad(X^TX=I)\]

面试追问:为何正则化前要标准化?

同一真实影响若因单位不同需要不同系数大小,统一惩罚会偏袒数值尺度大的特征。只用训练数据拟合均值和标准差;截距通常不惩罚,否则会不必要地收缩整体均值。

易错点与边界

L1对相关特征的选择可能不稳定,非零系数不等于因果重要性。λ应在验证集选择,不能看测试结果反复调整。

识别线索与迁移:MAP先验解释、共线性、软阈值交易成本模型;相同数学形状可能来自不同业务机制。

B · 收敛速度受曲率控制

06 · 梯度下降、SGD与条件数

这节先认清:SGD是随机梯度下降:每次只抽一部分样本估计梯度;batch是这一小批样本。曲率是曲面弯得多急,特征值描述每个主要方向的曲率,条件数比较最陡与最缓方向。预条件化可理解为先把尺度扭得更均衡,再沿梯度走,避免在狭长谷底来回晃。

从一个例子开始

一维目标f(w)=aw²/2,梯度下降wₜ₊₁=(1−ηa)wₜ。只有0<η<2/a时迭代收敛;学习率过大将振荡发散。

机制与推导步骤

  1. 对二次目标f(w)=wᵀHw/2,沿H的每个特征向量方向,更新倍率是1−ηλⱼ。
  2. 所有方向都稳定需η<2/λ_max。若λ_min很小,最平缓方向下降极慢;条件数κ=λ_max/λ_min越大,统一步长越难兼顾。
  3. SGD用小批梯度替代全梯度,正确抽样时无偏但有噪声;更大batch降低梯度方差却不保证更快到达同等泛化误差。标准化与预条件化有助于曲率。
\[w_{t+1}=w_t-\eta\nabla f(w_t),\qquad |1-\eta\lambda_j|<1\quad\text{对每个正特征值}\]

面试追问:Adam一定比SGD好吗?

不一定。Adam利用一二阶梯度滑动平均调节坐标步长,常有好的初始进展,但泛化和稳定性依任务、超参而异。比较时对齐数据、训练预算、调参预算与最终目标,不能只比前100步损失。

易错点与边界

凸不等于严格凸,严格凸也不等于数值条件好。训练损失下降不能排除验证集变差。

识别线索与迁移:逻辑回归Hessian、特征缩放、ridge改善条件数、梯度检查。

C · 选切分就是选损失下降

07 · 决策树:用局部划分拟合非线性

这节先认清:叶子是停止继续切分的那一小组样本,叶预测用组内常数。SSE就是平方残差和;Gini和熵都在量化组内标签有多混:两类各半时混杂高,全为同类时都为0。“贪心”指每一步只选当前最优切分,并没有同时枚举整棵树。

从一个例子开始

4个样本x=1,2,3,4,标签y=0,0,1,1。在x=2.5切分后两侧纯净,分类树一次切分就能分开。若标签为连续收益,叶子预测该区间的均值。

机制与推导步骤

  1. 回归树考虑候选特征j和阈值s,分成左右集合,各叶最优常数是组内均值,因为它最小化平方误差。
  2. 计算切分前后SSE之差,选下降最大的切分。分类树可用Gini=1−Σpₖ²或熵−Σpₖlogpₖ;准则不同但都衡量混杂程度。
  3. 递归直到深度、叶样本数或增益约束。树可表示特征交互,例如先按市场状态、再按成交量分区;但贪心切分不保证全局最优树。

再把中间一步算开:把前面四个标签0、0、1、1算到底:不切分时叶预测0.5,总SSE=4×0.5²=1。在x=2.5切开,两叶各只有0或1,SSE都0,因此增益1。树的“找到非线性”在这个例子里,就是发现一个阈值后分别用两个常数预测。

\[\operatorname{gain}=\sum_i(y_i-\bar y)^2-\sum_{i\in L}(y_i-\bar y_L)^2-\sum_{i\in R}(y_i-\bar y_R)^2\]

面试追问:树需要标准化吗?能否外推趋势?

普通轴对齐树对严格单调特征变换通常保持可选顺序划分,所以一般不需要尺度标准化。回归树叶子给常数,超出训练特征范围常延用边界叶子,不能像线性模型那样自然外推。

易错点与边界

叶子样本过少会记噪声;重要性基于训练增益可能偏向高基数特征,需独立验证。

识别线索与迁移:随机森林降低方差,boosting顺序拟合剩余误差;先理解单棵树的偏差与方差。

C · 平均降低哪部分误差

08 · Bagging与随机森林:去相关比堆树更关键

这节先认清:Bagging是分别对重采样数据训练模型再平均;随机森林把它用于树,并进一步随机选择切分特征。误差相关指模型是否经常一起犯同方向的错,ρ越大,平均越难抵消。“袋外”是某棵树训练时没抽中的样本,可用来评估该树,但必须注意时间边界。

从一个例子开始

100棵树单棵误差方差为1,树间误差平均相关ρ=0.2。等权平均误差方差为0.2+0.8/100=0.208,并不是0.01。

机制与推导步骤

  1. 设各模型误差方差σ²、两两协方差ρσ²。对平均值方差展开,共B个对角项和B(B−1)个非对角项。
  2. 得到σ²[ρ+(1−ρ)/B]。随着B变大,独立部分消失,相关部分保留。
  3. Bagging对样本bootstrap后独立训练;随机森林再对每次切分随机抽特征,目的之一是降低树间相关。单树变弱但相关下降,平均后可能更好。
\[\operatorname{Var}\left(\frac1B\sum_{b=1}^B\epsilon_b\right)=\sigma^2\left(\rho+\frac{1-\rho}{B}\right)\]

面试追问:袋外误差能直接评估金融时间序列吗?

普通bootstrap/OOB混合时间,可能让未来样本训练后预测过去,且忽略标签重叠。应按时间设计样本外验证;OOB是IID场景下便利估计,不能替代时间约束。

易错点与边界

更多树主要稳定平均,不会消除所有偏差。树间相关ρ是教学简化,实际不同树方差与协方差不完全相同。

识别线索与迁移:投资组合分散化有同一协方差公式;集成模型要关注错误是否互补。

C · 下一棵树该拟合什么

09 · Gradient Boosting:在函数空间做梯度下降

这节先认清:Boosting按顺序加模型,新模型专门修正当前整体模型的不足。Gradient boosting的“梯度”针对每个样本的当前预测F求导;负梯度给出损失最想下降的方向,树再近似这个方向。弱学习器只是每一步受限的小模型,不是保证比随机好多少的统一称号。

从一个例子开始

当前模型预测ŷ=2,真实y=5,平方损失的负梯度是y−ŷ=3。新树应学习残差3,再按学习率加到当前预测。

机制与推导步骤

  1. 设当前模型Fₘ₋₁,计算每个样本上的负梯度rᵢ=−∂L(yᵢ,F(xᵢ))/∂F。
  2. 训练一棵小树hₘ拟合rᵢ,然后做Fₘ=Fₘ₋₁+ηhₘ。平方损失时负梯度恰好是残差;其他损失未必。
  3. 若使用二阶近似,叶内损失近似Σ(gᵢw+hᵢw²/2)+λw²/2,对w求导得到−Σg/(Σh+λ)。这是二阶树boosting的叶权公式,树复杂度还需单独惩罚。

再把中间一步算开:平方损失取L=(y−F)²/2,直接对当前预测F求导得到F−y,负梯度才是y−F。例子中F=2、y=5,新树给出h=3;η=0.1时新预测2+0.1×3=2.3,损失由4.5降到(5−2.3)²/2=3.645。树在近似下降方向,并非一次必须把误差全部拟合完。

\[F_m=F_{m-1}+\eta h_m,\qquad w_{\rm leaf}^*=-\frac{\sum_{i\in\rm leaf}g_i}{\sum_{i\in\rm leaf}h_i+\lambda}\]

面试追问:分类boosting拟合的也是y−概率吗?

二元交叉熵且F为logit时,导数g=p−y,负梯度为y−p;二阶项h=p(1−p)。但最终加的是logit函数,不是直接把残差加到概率上。

易错点与边界

learning rate、树数、深度相互作用;早停只看训练损失会偏向过拟合,应看按时间隔离的验证区间。

识别线索与迁移:损失→导数→伪残差→弱学习器,是从回归迁移到分类和排序的主线。

D · 最大方差方向不必有预测力

10 · PCA、SVD与潜在因子

这节先认清:PCA把多列相关输入改写成少数线性组合。协方差矩阵S记录每两列一起波动的程度;单位向量约束||v||=1是防止单纯把权重放大来虚增方差。SVD把矩阵拆成输入方向、输出方向与放大倍数三部分;“秩k”表示只保留k个独立方向。

从一个例子开始

两列资产收益高度同步,可能大部分变化由一个市场方向解释。PCA找的是输入方差最大的线性组合,而不是最能预测未来收益的组合。

机制与推导步骤

  1. 先在训练集中心化X,协方差S=XᵀX/n。找单位向量v最大化Var(Xv)=vᵀSv。
  2. 拉格朗日函数vᵀSv−λ(vᵀv−1),求导得Sv=λv,故最大特征值对应第一主成分。其余在正交约束下依次选择。
  3. SVD写X=UΣVᵀ,V列为主方向,奇异值平方/n为方差;取前k列给最优秩k平方重构。变量单位不同会改变结果,是否标准化需由问题决定。

再把中间一步算开:若两列中心化输入协方差S=diag(2,1),单位方向v=(cosθ,sinθ)的方差为2cos²θ+sin²θ=1+cos²θ,最大在θ=0,第一主方向是(1,0)。一般矩阵里方向不再与坐标轴重合,特征向量方程就是把同一个方向搜索写成可计算形式。

\[\max_{\|v\|=1}v^TSv,\quad Sv=\lambda v,\qquad X_k=U_k\Sigma_kV_k^T\]

面试追问:解释99%输入方差就能保证保留预测信息吗?

不能。若x₁为巨大但无关的噪声,x₂方差很小却决定y,PCA可能舍弃x₂。预测任务用验证比较降维前后结果,也可考虑有监督降维。

易错点与边界

PCA即使不看标签也必须只在训练折拟合,因为测试特征分布也属于未来信息。主成分符号可翻转,不改变子空间。

识别线索与迁移:协方差分解、因子模型、多重共线性、ridge谱收缩。

D · 用几何控制复杂度

11 · SVM、间隔与核方法

这节先认清:间隔是样本到分隔面的距离,支持向量是贴近边界、直接决定边界的样本。hinge损失在y·分数≥1时为0,否则为1−y·分数。核是“不显式列出新特征也能算它们内积”的函数,既是一种相似度,也必须满足相应正半定条件。

从一个例子开始

二维两类样本可被很多直线分开,硬间隔SVM选择距离最近样本最远的分隔面。对分隔面wᵀx+b=0,点到面的距离是|wᵀx+b|/||w||。

机制与推导步骤

  1. 把标签记作y∈{−1,1},缩放参数使最近点满足y(wᵀx+b)=1。此时几何间隔是1/||w||。
  2. 最大间隔等价于最小化||w||²/2并满足每点y(wᵀx+b)≥1。不可分时用hinge loss max(0,1−yz)加惩罚C。
  3. 对偶解只涉及样本内积,替换为满足正半定条件的核K(x,x′)=φ(x)ᵀφ(x′),相当于在特征空间做线性分隔,无需显式生成φ。

再把中间一步算开:最简单的核例子K(x,z)=(xz+1)²。把新特征写成φ(x)=(x²,√2x,1),内积φ(x)ᵀφ(z)=x²z²+2xz+1,恰等于K。算法因此能用一个核值代替显式三维内积;更复杂核也沿这一思路处理,但不是任意相似度都能这样表示。

\[\min_{w,b}\frac12\|w\|^2+C\sum_i\max\{0,1-y_i(w^Tx_i+b)\}\]

面试追问:RBF核的γ过大有什么问题?

核只在极近样本间较大,决策边界更局部,可能记忆训练样本;γ过小则样本都相似,可能欠拟合。C和γ须联合验证,且特征尺度会改变距离。

易错点与边界

任意相似度都不是合法核;SVM分数不是天然校准概率。核矩阵的存储计算也会限制大样本使用。

识别线索与迁移:逻辑回归与hinge损失、L2正则、距离尺度、核ridge。

D · 条件独立是一种模型选择

12 · 生成式、判别式与朴素贝叶斯

这节先认清:“生成式”先描述每一类怎样产生输入;“判别式”直接描述输入属于哪类的概率。朴素贝叶斯的朴素之处是把给定类别后的特征依赖忽略。例如重复复制一个词特征,可能让同一证据被乘两次,从而产生过度自信。平滑是在计数上加少量先验权重。

从一个例子开始

判断消息是否属于类别c,生成式方法先建P(x|c)与P(c),再用贝叶斯得到P(c|x);逻辑回归直接建P(c|x)。它们回答同一分类问题,但建模对象不同。

机制与推导步骤

  1. 朴素贝叶斯假设给定类别后各特征独立,所以P(x|c)=∏ⱼP(xⱼ|c)。
  2. 取对数后类别得分为logP(c)+ΣlogP(xⱼ|c),避免大量小概率相乘下溢。
  3. 若离散特征某值从未在类别c中出现,MLE给0并使整项概率归0。加平滑相当于引入先验伪计数,使概率有限。
\[P(c\mid x)\propto P(c)\prod_jP(x_j\mid c),\qquad \hat p_j=\frac{N_j+\alpha}{N+K\alpha}\]

面试追问:朴素贝叶斯条件独立假设错了为何仍可能分类不错?

分类只依赖类别得分的相对次序;错误概率模型也可能保留正确边界。但重复相关特征会重复计算证据,造成过度自信,因此概率质量和分类正确率要分开评估。

易错点与边界

“给定类别独立”不是“特征在总体独立”;不要从算法名字推断数据真有条件独立性。

识别线索与迁移:贝叶斯更新、逻辑回归、概率校准、重复信号。

E · 验证集必须模拟真实预测

13 · 时间验证、滚动窗口与标签重叠

这节先认清:验证是拿没参与当前拟合的数据模拟未来预测;训练集求参数,验证集选超参数,测试集检查最终选择。walk-forward就是训练窗口和后续验证窗口一起向前滚动;purge删标签区间跨进验证的信息,gap是人为留的时间空档,两者并不总相同。

从一个例子开始

每天预测未来5日收益。训练最后一天为周五,验证第一天为下周一:周五标签要到下周五才知道,与验证区间重叠,因此只按日期排序切开仍可能泄漏。

机制与推导步骤

  1. 先记录每行特征可用时点t和标签结束时点eₜ。做验证起点v时,训练样本的标签必须已在v前完成,删除eₜ≥v的训练记录。
  2. 使用walk-forward:过去窗口训练、后续窗口验证,多次向前滚动。扩展窗口利用全部过去,固定窗口更重近期,选择应依据稳定性与样本量。
  3. 隔离最终测试期,只在内层时间验证选择超参。gap是简单时间间隔;不规则或跨资产标签重叠时应按真实标签区间purge,而非只写固定天数就认为安全。
\[\mathcal D_{\rm train}(v)=\{(x_t,y_t):t<v,\ e_t<v\}\]

面试追问:随机K折什么时候才合适?

样本近似IID且部署目标同分布时可以。金融同资产时间序列通常不满足;横截面也常共享日期冲击,应按日期分组。要评估新资产迁移,还需按资产或实体分组。

易错点与边界

TimeSeriesSplit只提供时间切分,不自动解决财报发布时间、幸存者偏差、重叠标签和跨实体重复。

识别线索与迁移:先定义上线时哪些标签已经完成,再按相同信息边界切分。

E · 数据质量先于模型复杂度

14 · 预处理泄漏、幸存者偏差与可用时间

这节先认清:“fit”表示从数据估计规则,如均值和标准差;“transform”表示用已定规则处理新数据。point-in-time意为按当时真正可知的信息取值;幸存者偏差是只看后来存活的公司而漏掉失败者。目标编码则用某类别历史标签均值表示类别,因此尤其需要避免把答案传回输入。

从一个例子开始

用全样本均值标准化,即使完全没看y,也让训练过程知道未来分布。又如用今天仍上市股票回测十年前,会排除当时后来退市的公司。

机制与推导步骤

  1. 所有会从数据估计的步骤都在训练折fit:缺失填补、标准化、PCA、特征筛选、目标编码。验证/测试只transform。
  2. 建立point-in-time数据:按公开可用时间连接,而不是财务报告所属季度;修订数据应保留当时可见版本。
  3. 样本宇宙要反映当时可交易资产,保留退市、停牌与公司行动;重复样本和同事件多条记录应按组隔离。
\[\text{fit}(\mathcal D_{\rm train})\ \longrightarrow\ \text{transform}(\mathcal D_{\rm validation}),\qquad \mathrm{available\_at}\le\mathrm{prediction\_time}\]

面试追问:目标编码为何尤其容易泄漏?

把类别映射为该类别平均y,如果使用本行y或验证y,会把答案编码进输入。训练数据用out-of-fold编码,验证集用仅训练集拟合的映射;时间场景中还要确保编码只用过去已实现标签。

易错点与边界

Pipeline可防止一部分预处理泄漏,但不会自动修复错误的时间戳、标签构造或样本宇宙。

识别线索与迁移:每列都能回答“预测当时能否知道”是最有效的第一轮数据审计。

E · 好排名、好概率与好收益不同

15 · 指标、概率校准与业务目标

这节先认清:MSE是平均平方误差,MAE是平均绝对误差。校准问“报60%的事件是否约60%发生”;AUC问正样本是否通常排在负样本前面;IC问信号与未来收益是否相关,三者不等价。PR看精确率与召回率的权衡,ROC看真阳性率与假阳性率。指标名之后必须接它回答的实际问题,而不是把这些缩写合成一个分数。

从一个例子开始

模型A把所有真实概率0.6的事件预测0.99,方向可能对得多,但概率严重过度自信。模型B预测0.6,分类准确率相同,却更适合仓位与风险决策。

机制与推导步骤

  1. 回归用MSE/MAE取决于尾部敏感度;分类准确率依阈值且受类别比例影响,AUC衡量随机正例得分高于负例的概率,未必反映高精度区间表现。
  2. 对数损失与Brier分数评估概率;Brier为平均(p−y)²。校准要求预测0.6的一组长期约60%为正。可靠性图要报告每箱样本量。
  3. 投资排序可看横截面相关IC,但从IC到净收益仍经过持仓规则、风险约束、成交与费用。应在统一测试窗口比较,给分期与不确定性。
\[\operatorname{Brier}=\frac1n\sum_i(p_i-y_i)^2,\qquad \operatorname{IC}_t=\operatorname{Corr}(s_{t,i},r_{t+1,i})\]

面试追问:AUC高于0.5是否足够证明交易赚钱?

不够。AUC不看收益幅度、成本和容量。若模型只在不可交易小盘股上预测好,或优势小于成本,净收益仍可能为负。要把预测指标和完整执行链分开报告。

易错点与边界

校准也必须在独立于拟合的样本上学习和评估;总体校准好不保证每个市场阶段都好。

识别线索与迁移:逻辑回归成本阈值、统计检验、交易决策;选指标前先声明它服务哪个决定。

E · 训练环境不会一直重复

16 · 非平稳、漂移与模型更新

这节先认清:漂移是部署数据与训练数据的分布变了。“协变量”在这里就是输入X;条件分布P(Y|X)则描述同一种输入下答案怎样分布。重要性加权是让更像部署数据的训练样本占更大权重,但部署出现训练从未覆盖的输入时,权重无法补出缺失证据。

从一个例子开始

模型用高波动期训练,在低波动期部署。特征分布P(X)可能变,收益条件分布P(Y|X)也可能变;两者对策略影响不同。

机制与推导步骤

  1. 区分协变量漂移P(X)变而P(Y|X)稳定、标签先验漂移P(Y)变、概念漂移P(Y|X)变。现实可同时发生。
  2. 在特定协变量漂移假设且支持域有重叠时,重要性权重w(x)=p_test(x)/p_train(x)可修正训练风险估计。权重极大使方差爆炸,不能凭重加权凭空补新区域。
  3. 监控分布、预测残差、校准、分期损益;选滚动重训、遗忘权重或模型停用应提前制定规则,并在历史回放中检验。
\[E_{\rm test}[L]=E_{\rm train}\left[\frac{p_{\rm test}(X)}{p_{\rm train}(X)}L\right]\quad\text{if }P_{\rm test}(Y\mid X)=P_{\rm train}(Y\mid X)\]

面试追问:最近一周亏损是否应立即重训?

先区分正常波动、执行异常、数据变化和模型失效。单周噪声可很大,频繁根据损益临时改模型会带来新的适应性过拟合。预设触发条件,保留基线并做受控比较。

易错点与边界

漂移检测统计显著不代表业务重要;未检测到变化也不证明条件分布稳定。

识别线索与迁移:时间序列、有效样本量、顺序检验、模型治理。

F · 能手推一个网络再谈框架

17 · 神经网络与反向传播:链式法则复用中间量

这节先认清:隐藏单元是先把输入算成中间数h,再用于输出;ReLU取max(a,0),正半轴导数1、负半轴导数0。反向传播从损失向前逐层乘局部导数,就是数学先修中的链式法则;前向缓存是在反向时复用已算过的a、h,而不是重新猜它们。

从一个例子开始

一个单隐藏单元网络:a=wx+b,h=ReLU(a),ŷ=vh+c,损失(ŷ−y)²/2。若x=2、w=1、b=0、v=3、c=0、y=5,则a=h=2、ŷ=6,误差为1。

机制与推导步骤

  1. 从末端开始∂L/∂ŷ=ŷ−y=1;∂L/∂v=(ŷ−y)h=2,∂L/∂c=1。
  2. 回到隐藏层∂L/∂h=(ŷ−y)v=3;因为a>0,ReLU导数为1,因此∂L/∂w=3x=6,∂L/∂b=3。
  3. 多层网络仍是同样的链式法则,反向传播缓存前向中间量并复用梯度。线性层接线性层若没有非线性,其复合仍是线性映射。
\[\frac{\partial L}{\partial w}=(\hat y-y)\,v\,\mathbf1\{wx+b>0\}\,x\]

面试追问:怎样检查自己写的梯度?

小规模确定性输入上,用中心差分[f(w+ε)−f(w−ε)]/(2ε)对照解析梯度。避开ReLU的不可导点,关闭dropout等随机性,选择不过大或过小的ε并比较相对误差。

易错点与边界

梯度存在不保证好优化;激活饱和、初始化、归一化与学习率会影响梯度尺度。训练集拟合更强也可能放大金融噪声。

识别线索与迁移:逻辑回归是单层概率模型;链式法则连接所有可微损失与模型。

F · 隐变量使直接优化困难

18 · K-means与EM:先分配再估参数

这节先认清:簇是相似样本的一组,中心是组内代表。隐变量Z是没直接观察到的类别;EM轮流做两件事:按当前参数估各点属于各类的概率,再按这些概率重新估参数。责任度rᵢₖ就是第i个点分给第k类的软权重,不是又一份真实标签。

从一个例子开始

一维数据0、1、9、10,设两个簇。若当前中心为0和10,先分配到近中心,再更新中心为0.5与9.5;类内平方和下降。

机制与推导步骤

  1. K-means最小化Σ||xᵢ−μ_zᵢ||²。固定中心时逐点选最近簇最优;固定分配时簇内均值最优。交替更新不会增加目标,但可停在局部解。
  2. 高斯混合模型把硬分配改成隐类别Z的概率。E步计算责任度rᵢₖ=P(Z=k|xᵢ,当前参数);M步用责任度加权更新均值、协方差和混合权重。
  3. EM通过对log似然建立在当前参数处紧的下界并最大化下界,保证似然不下降;并不保证全局最优。
\[r_{ik}=\frac{\pi_k\mathcal N(x_i\mid\mu_k,\Sigma_k)}{\sum_j\pi_j\mathcal N(x_i\mid\mu_j,\Sigma_j)},\qquad \mu_k^{\rm new}=\frac{\sum_i r_{ik}x_i}{\sum_i r_{ik}}\]

面试追问:高斯混合似然为何可能无界?

某个分量中心对准一个样本且协方差趋近0,会让该点密度无限大。实际需要协方差下界、正则或先验。多次初始化可减少坏局部解,但不证明全局最优。

易错点与边界

市场状态簇是数据分组,不自动具有经济含义;在全期聚类再标注过去属于未来信息。

识别线索与迁移:贝叶斯后验责任度、交替优化、状态分层统计。

F · 搜得越多越需要独立证据

19 · 泛化界、模型选择与研究自由度

这节先认清:泛化问在新样本上会错多少;ε是允许训练平均与真实平均相差的幅度,δ是保证可能失败的概率。上界不是实际错误率预测,而是保守保证。“并集上界”说至少一个坏事件发生的概率不超过各坏事件概率之和,即便它们不独立也成立。

从一个例子开始

假设有100个完全无效模型,挑验证误差最小的一项。即使每个模型单独估计无偏,最小的那个也容易因为运气看起来更好,这就是选择后的乐观偏差。

机制与推导步骤

  1. 对固定模型且独立有界损失,可用Hoeffding界约束经验风险与真实风险差异:单模型偏差超过ε的概率至多2exp(−2nε²)。
  2. 若候选集合H有限且在观察这批样本前已固定,对各模型失败事件用并集上界,得到2|H|exp(−2nε²)。令这个上界等于δ,两边取对数,移项得ε=√[log(2|H|/δ)/(2n)]。候选越多,需要更多样本。
  3. 真实研究包括特征、标签、窗口、资产池、损失与过滤规则等自由度,不能只统计最终保留的模型数。观察验证结果后不断创造新模型,再把最后模型数代入有限固定集合的界,论证并不成立。用嵌套验证和冻结测试集减少选择偏差。

再把中间一步算开:用数字读这个界:事先固定100个候选、n=1000个独立样本、损失在[0,1],希望失败概率δ≤0.05。解得ε=√[log(2×100/0.05)/(2×1000)]≈0.0644。这给约6.44个百分点的保守误差幅度,并不表示实际模型一定错这么多;假设不满足时也不能套数。

\[P\left(\sup_{h\in\mathcal H}|R(h)-\hat R(h)|>\epsilon\right)\le2|\mathcal H|e^{-2n\epsilon^2}\quad(L\in[0,1],\ \text{IID})\]

面试追问:测试集看过一次后还能继续称为独立测试吗?

若根据结果改变模型或研究方向,测试反馈已进入选择过程,独立性被消耗。可以保留结果作为开发证据,但最终可靠评估需新的冻结样本或严格的前瞻测试。

易错点与边界

上述界通常保守,且IID与有界损失在金融数据中未必成立;它解释搜索代价,不给现实策略通用保证。

识别线索与迁移:多重检验、回测过拟合、nested CV;研究记录应包含失败尝试与版本。

G · 把理论收敛成一套研究流程

20 · 完整建模答题:从最小基线到决策结果

这节先认清:基线是最简单、可解释且验证合法的参照模型;样本外指这段数据没有参与当前拟合与选择。容量问资金加大后还能否按假设成交;PnL是最终损益。把这四个词放回“数据→预测→持仓→成交→净损益”的具体记录里,才有可检查的研究回答。

从一个例子开始

题目:“有五年股票价量数据,如何做下一日收益预测?”一个好答案先定义可交易时点、资产宇宙、标签和验证,再建立简单基线,随后讨论模型。

机制与推导步骤

  1. 数据:按当时可用信息构造特征,处理复权、退市与缺失;标签区间与交易时间对齐。先画一条样本的时间线。
  2. 基线:历史均值、线性或ridge,报告严格walk-forward的预测误差/IC、分期稳定性。只在训练折拟合预处理。
  3. 改进:每次只改变一个主要因素,与同窗口同成本基线比较。选模型后再转持仓,模拟成交、滑点、费用、冲击和风险约束;冻结测试,保留全部尝试。
\[\text{data at time }t\to\hat r_{t+1}\to w_t\to\text{fills and costs}\to\operatorname{PnL}_{t+1}\]

面试追问:给你一个高IC模型,下一步最先问什么?

先核验它在预测当时可得、样本外且没有标签重叠泄漏;再问优势集中在哪些资产、时段、换手和成本水平,能否真正成交。若证据链不完整,继续加复杂模型不是首要动作。

易错点与边界

好预测不等于好策略;回测盈利不等于未来盈利。每次结论都应说明输入版本、评估期间、模型、执行假设与不确定性。

识别线索与迁移:概率统计负责不确定性,机器学习负责函数估计,执行决定预测优势能否兑现。

闭卷复习:检验是否真正掌握

  1. 任选一节,只凭标题复原例子的计算,不能只背最终数字。
  2. 把独立改成相关、把已知参数改成未知、把固定样本量改成停止规则,说明哪一步需要重写。
  3. 给出一个反例:解释公式在什么情况下不能用,再说可用的替代方法。
  4. 用两分钟把题目讲给同事:设定 → 核心工具 → 推导 → 数值检查 → 边界。

证据边界与资料索引

本套笔记是独立编写的教学路线和例题,不是公司真题转录,也不声称覆盖某家公司的所有题目。官方招聘材料只支持能力方向;每节的学习优先级是按概念依赖和迁移范围作出的教学判断,没有未经证实的考题频率排名。招聘流程与网页可能变化,适用范围以具体岗位与招聘方说明为准。

公式中的默认假设在各节列出。市场数据的非平稳、重尾、依赖与执行成本会破坏课堂模型;数学例题的正确不构成策略可盈利证据。