动机
最小二乘处理的是固定特征矩阵下的问题:哪组系数令残差平方和最小?选择哪些特征,则是另一个问题。在互异输入上,只要多项式次数足够高,就能通过全部观测点,但插值本身并不能确定另一个响应会预测得多准。训练残差描述的是模型与曾用来选定系数的观测之间有多吻合。
模型验证考察拟合时保留不用的观测,从而具体区分估计系数与选择模型。训练集决定拟合函数,验证集则比较不同特征或惩罚强度。选定程序后,可以用全部开发数据重新拟合。另一份最终测试集用来评估已选定的程序,并不参与该项选择。
岭回归加入了一个新选择:在残差平方与系数大小的平方之间取得平衡。要理解这种平衡,必须说清楚损失的尺度、哪些系数受惩罚,以及特征采用什么计量单位。交叉验证比较这些选择时,使用的是预测误差,而非带惩罚项的训练目标值。
训练误差不足以决定模型选择,有一个简单理由。假设新特征矩阵保留旧矩阵的全部列,并加入其他列。把新增系数设为零,就可以把每组旧系数扩展为新系数,产生完全相同的预测。因此,对较大的候选集合求最小值,训练 SSE 只会下降或保持不变。改善可能来自有用规律,也可能只是吸收了这批观测的特殊波动。训练优化没有保留的响应可用来区分两者;验证则在优化完成后,提供另一项预测比较。
定义
设 T T T 、V V V 是互不相交且非空的训练与验证索引集合。以 T T T 拟合的模型记为 f ^ T \widehat f_T f T 。对平方误差,定义
L T = 1 ∣ T ∣ ∑ i ∈ T ( y i − f ^ T ( x i ) ) 2 , L V = 1 ∣ V ∣ ∑ i ∈ V ( y i − f ^ T ( x i ) ) 2 . L_T=\frac{1}{|T|}\sum_{i\in T}(y_i-\widehat f_T(x_i))^2,
\qquad
L_V=\frac{1}{|V|}\sum_{i\in V}(y_i-\widehat f_T(x_i))^2. L T = ∣ T ∣ 1 i ∈ T ∑ ( y i − f T ( x i ) ) 2 , L V = ∣ V ∣ 1 i ∈ V ∑ ( y i − f T ( x i ) ) 2 .
两式使用同一个已拟合函数。计算验证损失时,不会利用验证响应重新估计它的系数。候选模型包含特征构造、预处理和拟合规则,因此这些步骤也必须在每次划分的训练部分内学习。
度量预测误差
对含有 m m m 个观测的评估集,记 e i = y i − y ^ i e_i=y_i-\widehat y_i e i = y i − y i 。三个常用指标为
MSE = 1 m ∑ i e i 2 , MAE = 1 m ∑ i ∣ e i ∣ , RMSE = 1 m ∑ i e i 2 . \operatorname{MSE}=\frac1m\sum_i e_i^2,
\qquad
\operatorname{MAE}=\frac1m\sum_i|e_i|,
\qquad
\operatorname{RMSE}=\sqrt{\frac1m\sum_i e_i^2}. MSE = m 1 i ∑ e i 2 , MAE = m 1 i ∑ ∣ e i ∣ , RMSE = m 1 i ∑ e i 2 .
MSE 的单位是响应单位的平方;MAE 和 RMSE 则与响应使用相同单位。平方使大残差有较大影响,绝对损失则随误差大小线性增长。因为平方根递增,在同一评估集上,RMSE 与 MSE 对候选预测给出相同排序,MAE 却可能给出另一排序。比较候选模型前,应先选定能表达预测任务的指标。
以评估集的响应平均值 y ‾ \overline y y 定义
SST = ∑ i ( y i − y ‾ ) 2 , R 2 = 1 − ∑ i e i 2 SST , SST > 0. \operatorname{SST}=\sum_i(y_i-\overline y)^2,
\qquad
R^2=1-\frac{\sum_i e_i^2}{\operatorname{SST}},
\qquad \operatorname{SST}>0. SST = i ∑ ( y i − y ) 2 , R 2 = 1 − SST ∑ i e i 2 , SST > 0.
这里的基准模型总是预测评估集平均值。R 2 R^2 R 2 为负,表示候选模型的平方误差比此基准更大。对训练数据,若普通最小二乘模型包含自由常数项,便有 0 ≤ R 2 ≤ 1 0\le R^2\le1 0 ≤ R 2 ≤ 1 ,因为常数预测也在候选模型之中。这项比较不适用于保留观测上的预测。若全部评估响应相同,SST 为零,上述定义便没有数值,但仍可计算 MSE。特别地,只有一个观测的验证折,无法提供这个 R 2 R^2 R 2 。
训练界限的证明,是把响应平均值代入最小二乘目标,其 SSE 恰等于 SST。因此最小 SSE 介于零与 SST 之间,除以正的 SST 就得到界限。这个论证使用同一批观测进行拟合及计算两个平方和。验证集的响应平均值只是比较基准,并非由训练子集估计的模型系数。此外,先对各折 RMSE 取平均,与先合并 MSE 再开平方根,一般会得到不同结果,因为开平方根的步骤在不同阶段进行。
中位误差与百分比误差
另外两个指标取误差分布的中间值:
MdSE = median i ( e i 2 ) , MdAE = median i ∣ e i ∣ . \operatorname{MdSE}=\operatorname{median}_i(e_i^2),
\qquad
\operatorname{MdAE}=\operatorname{median}_i|e_i|. MdSE = median i ( e i 2 ) , MdAE = median i ∣ e i ∣.
观测数为偶数时,取排序后中间两值的平均。MdSE 的单位是响应单位的平方,
MdAE 则与响应同单位。平均误差涵盖全部观测,中位误差描述中间大小,两者
反映残差分布的不同特征。
取 y = ( 1 , 2 , 3 , 7 ) T y=(1,2,3,7)^T y = ( 1 , 2 , 3 , 7 ) T 、预测 ( 1 , 2 , 0 , 0 ) T (1,2,0,0)^T ( 1 , 2 , 0 , 0 ) T ,残差为 ( 0 , 0 , 3 , 7 ) T (0,0,3,7)^T ( 0 , 0 , 3 , 7 ) T 。MSE 是
14.5 14.5 14.5 ,MdSE 是 4.5 4.5 4.5 ;MAE 是 2.5 2.5 2.5 ,MdAE 是 1.5 1.5 1.5 。平均绝对百分比误差为
MAPE = 100 m ∑ i = 1 m ∣ e i y i ∣ , y i ≠ 0 ( 1 ≤ i ≤ m ) . \operatorname{MAPE}=\frac{100}{m}\sum_{i=1}^m\left|\frac{e_i}{y_i}\right|,
\qquad y_i\ne0\quad(1\le i\le m). MAPE = m 100 i = 1 ∑ m y i e i , y i = 0 ( 1 ≤ i ≤ m ) .
MAPE 以百分比表示相对误差。本例四个观测响应均非零,绝对相对误差为
0 , 0 , 1 , 1 0,0,1,1 0 , 0 , 1 , 1 ,故 MAPE 为 50 % 50\% 50% 。此定义要求每个观测响应均非零。
从训练数据学习特征尺度
对非恒定的训练特征,利用训练平均值及总体标准差得到
μ T = 1 ∣ T ∣ ∑ i ∈ T x i , s T = 1 ∣ T ∣ ∑ i ∈ T ( x i − μ T ) 2 , z = x − μ T s T . \mu_T=\frac1{|T|}\sum_{i\in T}x_i,
\qquad
s_T=\sqrt{\frac1{|T|}\sum_{i\in T}(x_i-\mu_T)^2},
\qquad
z=\frac{x-\mu_T}{s_T}. μ T = ∣ T ∣ 1 i ∈ T ∑ x i , s T = ∣ T ∣ 1 i ∈ T ∑ ( x i − μ T ) 2 , z = s T x − μ T .
转换验证输入时,继续使用同一个 μ T \mu_T μ T 和 s T s_T s T 。训练 min-max 缩放同样只使用训练极值,并要求训练范围为正。恒定特征可在标准化前删除,因为截距已表示常数贡献。日后输入转换后,可能落在训练区间之外;这反映了新输入的位置,并不表示转换计算有错。
对 A ∈ R n × p A\in\mathbb R^{n\times p} A ∈ R n × p 、y ∈ R n y\in\mathbb R^n y ∈ R n ,本节把全部系数都纳入惩罚的岭回归目标定为
J λ ( β ) = ∥ y − A β ∥ 2 2 + λ ∥ β ∥ 2 2 , λ > 0. J_\lambda(\beta)=\|y-A\beta\|_2^2+\lambda\|\beta\|_2^2,
\qquad \lambda>0. J λ ( β ) = ∥ y − A β ∥ 2 2 + λ ∥ β ∥ 2 2 , λ > 0.
这里使用未除以观测数目的误差平方和。另一目标 ∥ y − A β ∥ 2 2 / n + ρ ∥ β ∥ 2 2 \|y-A\beta\|_2^2/n+\rho\|\beta\|_2^2 ∥ y − A β ∥ 2 2 / n + ρ ∥ β ∥ 2 2 在 λ = n ρ \lambda=n\rho λ = n ρ 时有相同最小值点。若惩罚写成 α 2 ∥ β ∥ 2 2 \alpha^2\|\beta\|_2^2 α 2 ∥ β ∥ 2 2 ,则 λ = α 2 \lambda=\alpha^2 λ = α 2 。这些参数是所选目标的数值描述,因此报告参数值时,也要交代所用的归一化约定。
定理/命题
命题
每个正惩罚强度都给出唯一的岭回归拟合 对任意实矩阵 A A A 、实向量 y y y 及 λ > 0 \lambda>0 λ > 0 ,A T A + λ I A^TA+\lambda I A T A + λ I 都是正定矩阵。J λ J_\lambda J λ 的唯一最小值点由下式刻画:
( A T A + λ I ) β ^ λ = A T y . (A^TA+\lambda I)\widehat\beta_\lambda=A^Ty. ( A T A + λ I ) β λ = A T y . 此结论也适用于秩不足的设计矩阵。正定性同时给出系数向量的存在性与唯一性。
命题
惩罚增强时的训练取舍 固定 A A A 、y y y ,设 0 < λ 1 < λ 2 0<\lambda_1<\lambda_2 0 < λ 1 < λ 2 ,并定义
S j = ∥ y − A β ^ λ j ∥ 2 2 , P j = ∥ β ^ λ j ∥ 2 2 . S_j=\|y-A\widehat\beta_{\lambda_j}\|_2^2,
\qquad P_j=\|\widehat\beta_{\lambda_j}\|_2^2. S j = ∥ y − A β λ j ∥ 2 2 , P j = ∥ β λ j ∥ 2 2 . 则 P 2 ≤ P 1 P_2\le P_1 P 2 ≤ P 1 且 S 1 ≤ S 2 S_1\le S_2 S 1 ≤ S 2 。较大的惩罚使系数范数下降或保持不变,并使训练残差平方和上升或保持不变。这些不等式没有对验证误差的大小次序作出结论。
证明思路
对任意非零向量 h h h ,
h T ( A T A + λ I ) h = ∥ A h ∥ 2 2 + λ ∥ h ∥ 2 2 > 0. h^T(A^TA+\lambda I)h=\|Ah\|_2^2+\lambda\|h\|_2^2>0. h T ( A T A + λ I ) h = ∥ A h ∥ 2 2 + λ ∥ h ∥ 2 2 > 0.
对 J λ J_\lambda J λ 求导,得到 2 ( A T A + λ I ) β − 2 A T y 2(A^TA+\lambda I)\beta-2A^Ty 2 ( A T A + λ I ) β − 2 A T y ,其唯一零点满足上面的线性方程组。也可以直接在此解附近展开:
J λ ( β ^ λ + h ) = J λ ( β ^ λ ) + h T ( A T A + λ I ) h . J_\lambda(\widehat\beta_\lambda+h)
=J_\lambda(\widehat\beta_\lambda)
+h^T(A^TA+\lambda I)h. J λ ( β λ + h ) = J λ ( β λ ) + h T ( A T A + λ I ) h .
每个非零改变都严格增加目标值,因此这是全局最小值。即使普通最小二乘有多组系数解,论证仍然成立。
同一个岭回归问题也可写成增广观测上的普通最小二乘:
A ~ = [ A λ I ] , y ~ = [ y 0 ] , J λ ( β ) = ∥ y ~ − A ~ β ∥ 2 2 . \widetilde A=\begin{bmatrix}A\\\sqrt\lambda I\end{bmatrix},
\qquad
\widetilde y=\begin{bmatrix}y\\0\end{bmatrix},
\qquad
J_\lambda(\beta)=\|\widetilde y-\widetilde A\beta\|_2^2. A = [ A λ I ] , y = [ y 0 ] , J λ ( β ) = ∥ y − A β ∥ 2 2 .
新增的行恰好产生系数惩罚。更一般地,把 λ I \sqrt\lambda I λ I 换成矩阵 Γ \Gamma Γ ,就得到 Tikhonov 惩罚 ∥ Γ β ∥ 2 2 \|\Gamma\beta\|_2^2 ∥Γ β ∥ 2 2 。它的最小值点唯一,当且仅当同时被 A A A 和 Γ \Gamma Γ 映为零的向量只有零向量。对应的二次型为 ∥ A h ∥ 2 2 + ∥ Γ h ∥ 2 2 \|Ah\|_2^2+\|\Gamma h\|_2^2 ∥ A h ∥ 2 2 + ∥Γ h ∥ 2 2 ,由此立即得到判别条件。这也解释了为何截距不受惩罚仍可有唯一拟合:即使惩罚没有约束常数方向,数据矩阵仍能观测该方向。
对第二个命题,两个惩罚值下的最优性分别给出
S 1 + λ 1 P 1 ≤ S 2 + λ 1 P 2 , S 2 + λ 2 P 2 ≤ S 1 + λ 2 P 1 . S_1+\lambda_1P_1\le S_2+\lambda_1P_2,
\qquad
S_2+\lambda_2P_2\le S_1+\lambda_2P_1. S 1 + λ 1 P 1 ≤ S 2 + λ 1 P 2 , S 2 + λ 2 P 2 ≤ S 1 + λ 2 P 1 .
两式相加得 ( λ 2 − λ 1 ) ( P 2 − P 1 ) ≤ 0 (\lambda_2-\lambda_1)(P_2-P_1)\le0 ( λ 2 − λ 1 ) ( P 2 − P 1 ) ≤ 0 ,故 P 2 ≤ P 1 P_2\le P_1 P 2 ≤ P 1 。第一式再推出 S 1 − S 2 ≤ λ 1 ( P 2 − P 1 ) ≤ 0 S_1-S_2\le\lambda_1(P_2-P_1)\le0 S 1 − S 2 ≤ λ 1 ( P 2 − P 1 ) ≤ 0 。
谱可以解释哪些方向被缩减。若正交单位特征向量满足 A T A v j = d j v j A^TA v_j=d_jv_j A T A v j = d j v j ,且 d j > 0 d_j>0 d j > 0 ,则
v j T β ^ λ = v j T A T y d j + λ = d j d j + λ v j T β ^ 0 + . v_j^T\widehat\beta_\lambda
=\frac{v_j^TA^Ty}{d_j+\lambda}
=\frac{d_j}{d_j+\lambda}\,v_j^T\widehat\beta_0^{+}. v j T β λ = d j + λ v j T A T y = d j + λ d j v j T β 0 + .
这里 β ^ 0 + \widehat\beta_0^{+} β 0 + 是普通最小二乘的最小范数解。零特征值方向满足 A v j = 0 Av_j=0 A v j = 0 ,因此 v j T A T y = 0 v_j^TA^Ty=0 v j T A T y = 0 ,岭回归在该方向的系数为零。较小的正 d j d_j d j 带来较强的相对缩减。这是关于正交谱坐标的结论;原特征坐标中的个别系数,未必会单调地向零移动。
以系数范数作预算的岭回归
同一拟合偏好也可用约束表达。记 f ( β ) = ∥ y − A β ∥ 2 2 f(\beta)=\|y-A\beta\|_2^2 f ( β ) = ∥ y − A β ∥ 2 2 ,考虑
min β : ∥ β ∥ 2 2 ≤ γ f ( β ) , γ ≥ 0. \min_{\beta:\,\|\beta\|_2^2\le\gamma}f(\beta),
\qquad \gamma\ge0. β : ∥ β ∥ 2 2 ≤ γ min f ( β ) , γ ≥ 0.
这是半径 γ \sqrt\gamma γ 的球。对正惩罚,取
γ λ = ∥ β ^ λ ∥ 2 2 \gamma_\lambda=\|\widehat\beta_\lambda\|_2^2 γ λ = ∥ β λ ∥ 2 2 。任意符合预算的 b b b 都满足
f ( β ^ λ ) + λ γ λ ≤ f ( b ) + λ ∥ b ∥ 2 2 ≤ f ( b ) + λ γ λ . f(\widehat\beta_\lambda)+\lambda\gamma_\lambda
\le f(b)+\lambda\|b\|_2^2
\le f(b)+\lambda\gamma_\lambda. f ( β λ ) + λ γ λ ≤ f ( b ) + λ ∥ b ∥ 2 2 ≤ f ( b ) + λ γ λ .
消去两端惩罚界限,便证明岭回归解使约束损失最小。这项构造通过拟合系数
的范数,连接所选惩罚和预算。
反过来,设 γ > 0 \gamma>0 γ > 0 。零向量严格可行,凸且可微的问题符合 Slater 条件,
因此 Karush–Kuhn–Tucker(KKT)条件为最优性的充要条件:
A T ( A β ∗ − y ) + λ β ∗ = 0 , ∥ β ∗ ∥ 2 2 ≤ γ , λ ≥ 0 , λ ( ∥ β ∗ ∥ 2 2 − γ ) = 0. \begin{aligned}
A^T(A\beta_*-y)+\lambda\beta_*&=0,\\
\|\beta_*\|_2^2&\le\gamma,\\
\lambda&\ge0,\\
\lambda(\|\beta_*\|_2^2-\gamma)&=0.
\end{aligned} A T ( A β ∗ − y ) + λ β ∗ ∥ β ∗ ∥ 2 2 λ λ ( ∥ β ∗ ∥ 2 2 − γ ) = 0 , ≤ γ , ≥ 0 , = 0.
Lagrangian 为 f ( β ) + λ ( ∥ β ∥ 2 2 − γ ) f(\beta)+\lambda(\|\beta\|_2^2-\gamma) f ( β ) + λ ( ∥ β ∥ 2 2 − γ ) ;驻点方程除以二,
就得到首行,沿用上面的 SSE 惩罚约定。凸性使驻点最小化 Lagrangian,再由
可行性和互补松弛证明约束最优性。正乘子给出唯一岭回归解;零乘子则给出
普通最小二乘方程,系数未必唯一。
松弛约束必有 λ = 0 \lambda=0 λ = 0 ;普通最小二乘解恰在边界时,约束取等也可有零乘子。
因此正乘子并不涵盖所有预算。γ = 0 \gamma=0 γ = 0 时没有严格可行点,唯一可行向量为
零,有限岭惩罚未必到达它。截距不罚时,只约束斜率向量,截距保持自由。
取单变量例 A = [ 1 ] A=[1] A = [ 1 ] 、y = 2 y=2 y = 2 ,则
β ^ λ = 2 1 + λ , γ λ = 4 ( 1 + λ ) 2 , β ∗ ( γ ) = min ( 2 , γ ) . \widehat\beta_\lambda=\frac2{1+\lambda},\qquad
\gamma_\lambda=\frac4{(1+\lambda)^2},\qquad
\beta_*^{(\gamma)}=\min(2,\sqrt\gamma). β λ = 1 + λ 2 , γ λ = ( 1 + λ ) 2 4 , β ∗ ( γ ) = min ( 2 , γ ) .
约束解把 2 2 2 投影至 [ − γ , γ ] [-\sqrt\gamma,\sqrt\gamma] [ − γ , γ ] 。γ = 1 \gamma=1 γ = 1 给出
β ∗ = 1 \beta_*=1 β ∗ = 1 、λ = 1 \lambda=1 λ = 1 ;γ = 4 \gamma=4 γ = 4 给出边界解 β ∗ = 2 \beta_*=2 β ∗ = 2 、λ = 0 \lambda=0 λ = 0 ;
γ = 9 \gamma=9 γ = 9 给出同一系数,但在球内部,乘子仍为零。γ = 0 \gamma=0 γ = 0 强制
β ∗ = 0 \beta_*=0 β ∗ = 0 ,而每个有限 λ ≥ 0 \lambda\ge0 λ ≥ 0 都有 2 / ( 1 + λ ) > 0 2/(1+\lambda)>0 2/ ( 1 + λ ) > 0 。本例的零预算
只在 λ → ∞ \lambda\to\infty λ → ∞ 的极限达到。
例题
例题
例题一:以训练尺度转换保留输入 设某个训练特征的数值为 0 0 0 、2 2 2 ,验证输入为 4 4 4 。训练平均值是 1 1 1 ,总体标准差是 1 1 1 ,所以训练值标准化后为 − 1 -1 − 1 、1 1 1 ,验证值标准化后则为 3 3 3 。
若改用训练 min-max 缩放,便得到 0 0 0 、1 1 1 ,以及验证值 2 2 2 。两种程序都重用训练参数。若加入验证输入后再计算平均值或范围,就改变了定义拟合模型的转换程序,让保留观测在度量预测误差之前,已影响拟合的其中一步。
另一个交叉验证折若使用不同训练观测,就应以那批观测重新计算尺度。预处理属于拟合程序的一部分,而不是对完整数据预先执行一次就完成的步骤。
例题
例题二:常数模型的留一交叉验证 用常数拟合响应 0 0 0 、2 2 2 、4 4 4 。使用全部三个响应,得到 c ^ = 2 \widehat c=2 c = 2 、残差平方和 8 8 8 ,以及训练 MSE 8 / 3 8/3 8/3 。
留一交叉验证会重新拟合三次。保留 0 0 0 时,训练平均值为 3 3 3 ;保留 2 2 2 时,平均值为 2 2 2 ;保留 4 4 4 时,平均值为 1 1 1 。因此
y ^ ( − 1 ) = 3 , y ^ ( − 2 ) = 2 , y ^ ( − 3 ) = 1 , CV L O O = 9 + 0 + 9 3 = 6. \widehat y^{(-1)}=3,\qquad
\widehat y^{(-2)}=2,\qquad
\widehat y^{(-3)}=1,
\qquad
\operatorname{CV}_{\mathrm{LOO}}=\frac{9+0+9}{3}=6. y ( − 1 ) = 3 , y ( − 2 ) = 2 , y ( − 3 ) = 1 , CV LOO = 3 9 + 0 + 9 = 6. 每个保留预测都在没有使用该响应的情况下取得。若三个预测都用完整数据的平均值,就只会重现训练 MSE,而非留一误差。这项计算比较的是一个使用全部数据的拟合,与三个各用两个观测的拟合;即使模型只有一个系数,两者的差别也清楚可见。
例题
例题三:分开残差误差与系数大小 取 A = diag ( 1 , 2 ) A=\operatorname{diag}(1,2) A = diag ( 1 , 2 ) 、y = ( 2 , 2 ) T y=(2,2)^T y = ( 2 , 2 ) T 、λ = 1 \lambda=1 λ = 1 ,并惩罚两个系数。此时
A T A + I = [ 2 0 0 5 ] , A T y = [ 2 4 ] , β ^ 1 = [ 1 4 / 5 ] . A^TA+I=\begin{bmatrix}2&0\\0&5\end{bmatrix},
\qquad A^Ty=\begin{bmatrix}2\\4\end{bmatrix},
\qquad \widehat\beta_1=\begin{bmatrix}1\\4/5\end{bmatrix}. A T A + I = [ 2 0 0 5 ] , A T y = [ 2 4 ] , β 1 = [ 1 4/5 ] . 预测为 ( 1 , 8 / 5 ) T (1,8/5)^T ( 1 , 8/5 ) T ,残差为 ( 1 , 2 / 5 ) T (1,2/5)^T ( 1 , 2/5 ) T ,所以
∥ y − A β ^ 1 ∥ 2 2 = 29 25 , ∥ β ^ 1 ∥ 2 2 = 41 25 , J 1 ( β ^ 1 ) = 14 5 . \|y-A\widehat\beta_1\|_2^2=\frac{29}{25},
\qquad
\|\widehat\beta_1\|_2^2=\frac{41}{25},
\qquad
J_1(\widehat\beta_1)=\frac{14}{5}. ∥ y − A β 1 ∥ 2 2 = 25 29 , ∥ β 1 ∥ 2 2 = 25 41 , J 1 ( β 1 ) = 5 14 . 普通最小二乘给出 ( 2 , 1 ) T (2,1)^T ( 2 , 1 ) T ,残差误差为零,系数范数平方为 5 5 5 。把它放进同一个 J 1 J_1 J 1 目标,得到 5 5 5 ,大于 14 / 5 14/5 14/5 。岭回归接受一定残差误差,以降低两项合成的目标。两个谱缩减因子分别为 1 / 2 1/2 1/2 、4 / 5 4/5 4/5 ,与上面的系数计算吻合。
上述两项计算可以直接重现:
import numpy as np
y = np.array([0.0, 2.0, 4.0])
held_predictions = np.array([
np.delete(y, i).mean() for i in range(len(y))
])
train_mse = np.mean((y - y.mean()) ** 2)
loo_mse = np.mean((y - held_predictions) ** 2)
A = np.diag([1.0, 2.0])
target = np.array([2.0, 2.0])
beta = np.linalg.solve(A.T @ A + np.eye(2), A.T @ target)
residual = target - A @ beta
objective = residual @ residual + beta @ beta
print(train_mse, loo_mse, beta, objective)
输出约为 2.666667 2.666667 2.666667 、6 6 6 、( 1 , 0.8 ) (1,0.8) ( 1 , 0.8 ) 、2.8 2.8 2.8 。直接求解正定方程组,便无须显式计算其逆矩阵。
用交叉验证选择模型
当 n ≥ 2 n\ge2 n ≥ 2 ,留一验证每次用一个观测以外的全部数据训练,再对 n n n 个保留平方误差取平均。留 p p p 验证要求 1 ≤ p < n 1\le p<n 1 ≤ p < n ,并考虑每个大小为 p p p 的验证子集,每个候选模型需要拟合 ( n p ) \binom np ( p n ) 次。k k k 折验证要求 2 ≤ k ≤ n 2\le k\le n 2 ≤ k ≤ n ,把观测分成 k k k 个互不相交的非空区块,每个区块轮流保留一次;k = n k=n k = n 时,就是留一交叉验证。
若各折大小不同,把平方误差合并后除以保留观测总数,就能给每个观测相同权重。若直接平均各折 MSE,给予相同权重的则是每一折。重复随机留出法,又称 Monte Carlo 交叉验证,会抽取多组训练与验证划分。每次划分内两集互不相交,但跨划分时,同一观测可能重复用作验证,也可能从未被选中。所有候选惩罚使用相同划分,可以让比较对应相同的预测任务。
以下程序使用三个固定折、一个非恒定特征,以及不受惩罚的截距。惩罚矩阵 P = diag ( 0 , 1 ) P=\operatorname{diag}(0,1) P = diag ( 0 , 1 ) 对应目标 ∥ y − A β ∥ 2 2 + λ β 1 2 \|y-A\beta\|_2^2+\lambda\beta_1^2 ∥ y − A β ∥ 2 2 + λ β 1 2 。每个训练子集都有不同的特征值,所以所计算的标准差皆为正。
import numpy as np
X = np.arange(6.0)[:, None]
y = np.array([1.0, 2.0, 2.0, 4.0, 4.0, 5.0])
folds = [np.array([0, 1]), np.array([2, 3]), np.array([4, 5])]
indices = np.arange(len(y))
penalty = np.diag([0.0, 1.0])
for lam in (0.0, 1.0, 4.0):
squared_error = 0.0
count = 0
for valid in folds:
train = np.setdiff1d(indices, valid)
mu = X[train].mean(axis=0)
scale = X[train].std(axis=0, ddof=0)
Z_train = (X[train] - mu) / scale
Z_valid = (X[valid] - mu) / scale
A = np.column_stack((np.ones(len(train)), Z_train))
B = np.column_stack((np.ones(len(valid)), Z_valid))
beta = np.linalg.solve(A.T @ A + lam * penalty, A.T @ y[train])
error = y[valid] - B @ beta
squared_error += error @ error
count += len(valid)
print(lam, squared_error / count)
对 λ = 0 , 1 , 4 \lambda=0,1,4 λ = 0 , 1 , 4 ,合并 MSE 分别约为 0.263829 0.263829 0.263829 、0.179066 0.179066 0.179066 、0.808482 0.808482 0.808482 ,所以 λ = 1 \lambda=1 λ = 1 在这三个候选值中最好。选出合并验证 MSE 最小的候选值后,再用全部开发观测学习新的尺度并重新拟合。自由截距表示响应的整体水平。当 λ \lambda λ 为正,这里唯一不受惩罚的方向是截距;其非零常数列确保解唯一。前面的 λ I \lambda I λ I 定理惩罚全部系数;改变惩罚矩阵,也就改变了所述问题。
若候选模型以平均损失的惩罚强度 ρ \rho ρ 定义,则每次训练划分内应使用 λ T = ∣ T ∣ ρ \lambda_T=|T|\rho λ T = ∣ T ∣ ρ 。这样,即使训练子集大小不同,也都实现同一平均损失约定。固定 SSE 参数的数值,则是在比较另一组目标。反复用验证观测比较候选模型后,那批观测已协助选择程序。把选定程序在全部开发数据上重新拟合,是利用这些信息的下一步;最终测试集才回答其后的评估问题。固定划分使数值比较可重现,使用多组既定划分,则能看出比较对哪些观测被保留有多敏感。
特征缩放也会改变惩罚。若 z j = ( x j − μ j ) / s j z_j=(x_j-\mu_j)/s_j z j = ( x j − μ j ) / s j ,标准化系数是 θ j \theta_j θ j ,则原尺度斜率为 β j = θ j / s j \beta_j=\theta_j/s_j β j = θ j / s j 。因此惩罚 ∑ j θ j 2 \sum_j\theta_j^2 ∑ j θ j 2 ,在原坐标中就是惩罚 ∑ j s j 2 β j 2 \sum_j s_j^2\beta_j^2 ∑ j s j 2 β j 2 。标准化提供一种选定且一致的比较单位,是模型定义的一部分。进行敏感度分析时,可以改变某个特征或惩罚值、固定其他选择,再重新计算预测。
输入变化的敏感度
固定模型的敏感度分析只改输入,保持拟合参数不变。改动训练观测后重新拟合,
则连模型本身也改变;所得预测衡量另一种稳定性。
逐项改动(OAT)每次只改一个输入,固定其余输入。对固定交互模型
f ( x 1 , x 2 ) = x 1 x 2 f(x_1,x_2)=x_1x_2 f ( x 1 , x 2 ) = x 1 x 2 ,在 ( 0 , 0 ) (0,0) ( 0 , 0 ) 附近有
f ( 1 / 5 , 0 ) = f ( 0 , 1 / 5 ) = 0 , f ( 1 / 5 , 1 / 5 ) = 1 / 25. f(1/5,0)=f(0,1/5)=0,
\qquad f(1/5,1/5)=1/25. f ( 1/5 , 0 ) = f ( 0 , 1/5 ) = 0 , f ( 1/5 , 1/5 ) = 1/25.
单项扰动均不改变输出,联合扰动却有变化,因此不能凭 OAT 不变就断言联合
不敏感。多变量分析考察交互作用;情景分析指定联合改动,Monte Carlo
敏感度分析则按指定分布抽样联合输入。
常见错误
常见错误
在完整拟合程序之后比较预测误差 训练 SSE 一般偏好较灵活的模型与较弱的惩罚。验证则在每个训练子集完成预处理及拟合后,比较保留预测。岭回归目标含有系数惩罚,其数值并非验证 MSE。增加 λ \lambda λ 保证上面证明的训练取舍,但验证误差在哪里最小,仍取决于数据。
总结
先定义评估指标、划分观测,再在训练子集学习预处理并拟合每个候选模型。合并保留误差以比较候选。岭回归的参数值应与损失归一化、截距惩罚约定一同记录。对全部系数施加正的平方惩罚,能得到唯一解,并按特征值缩减各谱方向。
练习
思考检查
练习一:训练特征值为 0 0 0 、2 2 2 。用总体标准差标准化验证输入 4 4 4 ,三个转换后的数值各是多少?
思考检查
练习二:评估响应为 0 0 0 、2 2 2 ,预测为 3 3 3 、3 3 3 。求 MSE、MAE、RMSE 及 R 2 R^2 R 2 。 SST 使用评估集平均值,并保留 R 2 R^2 R 2 的正负号。
思考检查
练习三:设 A = [ 1 1 1 1 ] A=\begin{bmatrix}1&1\\1&1\end{bmatrix} A = [ 1 1 1 1 ] 、y = ( 2 , 2 ) T y=(2,2)^T y = ( 2 , 2 ) T 、λ = 2 \lambda=2 λ = 2 ,并惩罚两个系数。求唯一的岭回归系数向量。 即使 A A A 的两列相同,仍可构造 A T A + 2 I A^TA+2I A T A + 2 I 。
思考检查
练习四:训练集大小为 n = 5 n=5 n = 5 ,目标是 ∥ y − A β ∥ 2 2 / 5 + 0.2 ∥ β ∥ 2 2 \|y-A\beta\|_2^2/5+0.2\|\beta\|_2^2 ∥ y − A β ∥ 2 2 /5 + 0.2∥ β ∥ 2 2 。在未归一化的 SSE 约定下,相应的 λ \lambda λ 是多少?
思考检查
练习五:对 A = [ 1 ] A=[1] A = [ 1 ] 、y = 2 y=2 y = 2 、预算 γ = 1 / 4 \gamma=1/4 γ = 1/4 ,求球半径、约束最小值点及相应的 SSE 岭参数。
解答
解答 · 练习一解答 训练平均值为 1 1 1 ,总体标准差为 1 1 1 ,所以 ( 0 − 1 ) / 1 = − 1 (0-1)/1=-1 ( 0 − 1 ) /1 = − 1 、( 2 − 1 ) / 1 = 1 (2-1)/1=1 ( 2 − 1 ) /1 = 1 、( 4 − 1 ) / 1 = 3 (4-1)/1=3 ( 4 − 1 ) /1 = 3 。验证输入不会改变尺度参数。
解答 · 练习二解答 残差为 − 3 -3 − 3 、− 1 -1 − 1 ,因此 SSE 为 10 10 10 、MSE 为 5 5 5 、MAE 为 2 2 2 、RMSE 为 5 \sqrt5 5 。响应平均值为 1 1 1 ,SST 为 2 2 2 ,故 R 2 = 1 − 10 / 2 = − 4 R^2=1-10/2=-4 R 2 = 1 − 10/2 = − 4 。负值表示在这些观测上,预测表现低于常数平均值基准。
解答 · 练习三解答 方程组为
[ 4 2 2 4 ] β = [ 4 4 ] . \begin{bmatrix}4&2\\2&4\end{bmatrix}\beta
=\begin{bmatrix}4\\4\end{bmatrix}. [ 4 2 2 4 ] β = [ 4 4 ] . 两式相减得 β 1 = β 2 \beta_1=\beta_2 β 1 = β 2 ,代入任一式便得 β 1 = β 2 = 2 / 3 \beta_1=\beta_2=2/3 β 1 = β 2 = 2/3 。矩阵特征值为 6 6 6 、2 2 2 ,皆为正。原矩阵两列重复,并不妨碍岭回归解的唯一性。
解答 · 练习四解答 乘以 5 5 5 后得到 ∥ y − A β ∥ 2 2 + ∥ β ∥ 2 2 \|y-A\beta\|_2^2+\|\beta\|_2^2 ∥ y − A β ∥ 2 2 + ∥ β ∥ 2 2 ,所以 λ = 1 \lambda=1 λ = 1 。整个目标乘以正数会保留最小值点;若只缩放残差项,便会改变两项之间的取舍。
解答 · 练习五解答 半径是 γ = 1 / 2 \sqrt\gamma=1/2 γ = 1/2 ,所以 β ∗ = 1 / 2 \beta_*=1/2 β ∗ = 1/2 。由 2 / ( 1 + λ ) = 1 / 2 2/(1+\lambda)=1/2 2/ ( 1 + λ ) = 1/2 得
λ = 3 \lambda=3 λ = 3 。驻点条件为 β ∗ − 2 + λ β ∗ = 1 / 2 − 2 + 3 / 2 = 0 \beta_*-2+\lambda\beta_*=1/2-2+3/2=0 β ∗ − 2 + λ β ∗ = 1/2 − 2 + 3/2 = 0 ,正乘子
对应取等的预算。
相关笔记
最小二乘与残差 推导本节使用的拟合方程。Lasso 与匹配追踪 探讨选出稀疏系数的惩罚及算法。奇异值分解与主成分 解释缩减背后的谱方向。课程阅读书目 集中列出延伸阅读。