Skip to content

数学原理

本章目标

  1. 理解正则化为什么在 OLS 损失函数中加入参数惩罚项。
  2. 理解 Ridge(L2)、Lasso(L1)、ElasticNet(L1+L2)三种目标函数的数学差异。
  3. 将数学公式中的 λρ 与源码中的 alphal1_ratio 精确对应。

重点方法与概念速览

名称类型作用
L2 正则化(Ridge)惩罚项λ|w|22——平方惩罚,系数整体收缩
L1 正则化(Lasso)惩罚项λ|w|1——绝对值惩罚,系数可精确归零
ElasticNet惩罚项λ[ρ|w|1+(1ρ)|w|22]——L1+L2 混合
alpha超参数对应数学中的 λ——控制正则化总强度
l1_ratio超参数对应数学中的 ρ——控制 L1 在 ElasticNet 中的占比

1. 从 OLS 到正则化:为什么需要惩罚项

参数速览

参数名类型说明示例取值
OLS 损失数学表达式|yXw|22——仅最小化残差平方和
正则化损失数学表达式OLS 损失 +λ 惩罚项——在拟合与复杂度之间权衡
λ标量正则化强度——λ=0 退化为 OLS,λ 系数全部归零alpha=0.15(Lasso)

理解重点

  • OLS 的唯一目标是让训练误差最小——在高维或共线场景下,系数可能剧烈波动。
  • 正则化在 OLS 损失上叠加系数惩罚——"你可以拟合数据,但要为系数过大付出代价"。
  • 当前源码中 Lasso/Ridge/ElasticNet 的 alpha 值不同(0.15 / 2.0 / 0.2),说明不同惩罚类型需要不同的强度来展示典型行为。

2. Ridge 回归(L2 正则化)

参数速览

适用模型:Ridge(alpha=2.0, random_state=42)

参数名类型说明示例取值
目标函数数学表达式LRidge=|yXw|22+λ|w|22
λ标量L2 正则化强度alpha=2.0
|w|22标量j=1dwj2——所有系数的平方和
闭式解数学表达式w=(XTX+λI)1XTy

理解重点

  • L2 惩罚对每个系数施加平方代价——大系数付出更大的代价,因此所有系数被均匀收缩
  • 闭式解中 λI 使 XTX 始终可逆——这是 Ridge 处理共线性的数学基础。
  • 平方惩罚在零点可微——系数可以趋于零但不会精确为零
  • 贝叶斯视角:Ridge 等价于对 w 施加高斯先验 wN(0,σ2λI) 后的 MAP 估计。

3. Lasso 回归(L1 正则化)

参数速览

适用模型:Lasso(alpha=0.15, max_iter=10000, random_state=42)

参数名类型说明示例取值
目标函数数学表达式LLasso=|yXw|22+λ|w|1
λ标量L1 正则化强度alpha=0.15
|w|1标量j=1d|wj|——所有系数的绝对值之和
次梯度数学表达式|wj|=sign(wj)wj0|wj|[1,1]wj=0

理解重点

  • L1 惩罚在原点不可微——正是这个不可微性使得系数可以被精确驱动到零。
  • 次梯度条件:当某个 wj 对降低残差的贡献不足以抵消 λ 时,wj 被置为零——自动特征选择。
  • Lasso 没有闭式解——scikit-learn 使用坐标下降法迭代求解。
  • 贝叶斯视角:Lasso 等价于对 w 施加拉普拉斯先验 P(wj)exp(λwj) 后的 MAP 估计。
  • 拉普拉斯分布在零点有尖峰——比高斯分布更倾向于让参数恰好为零。

4. ElasticNet(弹性网)

参数速览

适用模型:ElasticNet(alpha=0.2, l1_ratio=0.5, max_iter=10000, random_state=42)

参数名类型说明示例取值
目标函数数学表达式LEN=|yXw|22+λ[ρ|w|1+(1ρ)|w|22]
λ标量总正则化强度alpha=0.2
ρ标量L1 占比——ρ=1 退化为 Lasso,ρ=0 退化为 Ridgel1_ratio=0.5

理解重点

  • ElasticNet 通过 ρ 在 L1 和 L2 之间插值——兼具稀疏性和共线性稳定性。
  • 纯 Lasso 在相关特征组中可能随机只选一个——ElasticNet 的 L2 分量鼓励同组特征共享权重。
  • ρ=0.5 表示当前实现在稀疏性和稳定性之间取折中——不极端偏向任一侧。
  • 也是坐标下降求解——max_iter=10000 确保在 ρ 非极端值时充分收敛。

5. L1 vs L2 行为对比

特性L2(Ridge)L1(Lasso)
惩罚项wj2|wj|
原点可微性可微不可微
系数归零否——仅收缩是——可精确归零
闭式解无(需迭代)
共线性处理系数分摊到同组特征可能只选部分特征
贝叶斯先验高斯分布拉普拉斯分布
特征选择不擅长擅长

理解重点

  • L1 产生稀疏解的根本原因是原点不可微——不是"惩罚得更狠",而是惩罚的形状不同。
  • L2 的圆形等高线容易与损失等高线在任意点相切——系数非零但较小。
  • L1 的菱形等高线容易在坐标轴尖点处与损失等高线相切——系数精确为零。

6. 数学概念与代码实现的映射

数学概念数学符号代码实现
特征矩阵XRN×dX_train_s——标准化后形状 (353, 21)
目标向量yRNy_train——形状 (353,)
系数向量wRdmodel.coef_——形状 (21,)
截距bmodel.intercept_——标量
L2 惩罚强度λ(Ridge)Ridge(alpha=2.0)
L1 惩罚强度λ(Lasso)Lasso(alpha=0.15)
总惩罚强度λ(ElasticNet)ElasticNet(alpha=0.2)
L1 混合比例ρElasticNet(l1_ratio=0.5)
系数绝对值 < 103{j:|wj|<103}np.sum(np.abs(coef) < 1e-3)
标准化zij=xijμjσjStandardScaler().fit_transform(X_train)

7. 正则化回归 vs 线性回归 数学对比

数学维度线性回归正则化回归
损失函数|yXw|22OLS 损失 +λR(w)
优化问题无约束最小化带惩罚的约束最小化
求解方法SVD 闭式解(一步到位)坐标下降 / 闭式解(Ridge)+ 迭代(Lasso/EN)
唯一解是(当 X 满秩)是——惩罚项使问题强凸(Ridge/EN)或凸(Lasso)
对共线性的数值稳定性低——XTX 可能接近奇异高——λI 改善条件数(Ridge/EN)
特征选择无——所有系数非零有——L1 罚项可将系数精确归零
超参数数量01~2(α + 可选的 l1_ratio)
尺度敏感性不敏感——闭式解是尺度等变的敏感——惩罚项对系数量级敏感,必须标准化

常见坑

  1. alpha 理解成学习率或迭代轮数——它在这里是正则化强度 λ,越大惩罚越重。
  2. 认为"正则化一定让预测更准"——正则化在偏差和方差之间权衡,过强的正则化会导致欠拟合。
  3. 只记公式不记代码映射——alphaλl1_ratioρnp.sum(np.abs(coef) < 1e-3) ↔ 稀疏性。

小结

  • 正则化回归的数学本质是在 OLS 损失上叠加系数惩罚——从无约束优化变为带惩罚优化。
  • L2 惩罚产生收缩(Ridge),L1 惩罚产生稀疏(Lasso),L1+L2 混合产生折中(ElasticNet)。
  • L1 产生稀疏解的根本原因是绝对值函数在原点不可微——而非"惩罚更重"。
  • 数学公式中的 λρ 直接映射到源码中的 alphal1_ratio——理解这个映射是读懂后续章节的前提。