Skip to content

正则化回归 (Regularization)

核心思想

当特征之间存在多重共线性或特征数量接近/超过样本数时,最小二乘解不稳定且易过拟合。正则化通过在损失函数中添加惩罚项来约束参数大小,从而提高模型的泛化能力。

Ridge 回归 (L2 正则化)

目标函数

LRidge=i=1N(yiwTxi)2+λw22=(yXw)T(yXw)+λwTw

闭式解推导

LRidgew=2XTy+2XTXw+2λw=0wRidge=(XTX+λI)1XTy

λI 使得矩阵永远可逆,解决了共线性问题。

贝叶斯解释

Ridge 等价于对 w 施加高斯先验 wN(0,σ2λI) 后的 MAP 估计。

Lasso 回归 (L1 正则化)

目标函数

LLasso=i=1N(yiwTxi)2+λw1=(yXw)T(yXw)+λj=1d|wj|

稀疏性

L1 罚项在原点不可微,产生的约束区域为"菱形"。当等高线(椭圆)与菱形的顶点相切时,部分 wj 恰好为零 — 自动实现特征选择

次梯度

L1 正则项的次梯度为:

|wj|={{1}wj<0[1,1]wj=0{+1}wj>0

Lasso 没有闭式解,通常使用坐标下降法求解。

贝叶斯解释

Lasso 等价于对 w 施加拉普拉斯先验 P(wj)=λ2σ2exp(λσ2|wj|) 后的 MAP 估计。

ElasticNet (弹性网)

组合 L1 和 L2 罚项:

LEN=yXw22+λ1w1+λ2w22

等价形式(使用混合比 ρ[0,1]):

LEN=yXw22+λ[ρw1+(1ρ)w22]
  • ρ=1:退化为 Lasso
  • ρ=0:退化为 Ridge

ElasticNet 在相关特征分组时优于 Lasso(Lasso 只倾向于选出同组中的一个)。

L1 vs L2 对比

特性Ridge (L2)Lasso (L1)
惩罚项wj2|wj|
参数趋势收缩但不为零可精确为零
特征选择❌ 不具备✅ 自动选择
闭式解✅ 有❌ 无
贝叶斯先验高斯分布拉普拉斯分布
多重共线性效果好不稳定

代码对应

bash
python -m pipelines.regression.regularization