岭回归(Ridge Regression)辨析

关键词:L2 正则、病态矩阵、偏差--方差权衡、共线性、凸优化、闭式解


1. 从最小二乘谈起

普通最小二乘(OLS)目标:
β^OLS=arg⁡min⁡β∥y−Xβ∥22 \hat{\beta}{\text{OLS}} = \arg\min{\beta} \|\mathbf{y} - \mathbf{X}\beta\|_2^2 β^OLS=argβmin∥y−Xβ∥22

当设计矩阵 XTX\mathbf{X}^T\mathbf{X}XTX 接近奇异(共线性、高维小样本)时,解的方差爆炸,预测不稳定。岭回归在损失函数里加上 L2 惩罚,把奇异矩阵"拽"回正定。


2. 目标函数:带 L2 正则的二次规划

岭回归目标:
J(β)=∥y−Xβ∥22⏟数据拟合+λ∥β∥22⏟L2 惩罚,λ≥0 J(\beta) = \underbrace{\|\mathbf{y} - \mathbf{X}\beta\|2^2}{\text{数据拟合}} + \underbrace{\lambda \|\beta\|2^2}{\text{L2 惩罚}}, \quad \lambda \geq 0 J(β)=数据拟合 ∥y−Xβ∥22+L2 惩罚 λ∥β∥22,λ≥0

  • λ\lambdaλ:调谐参数,越大 → 参数压缩越狠,方差↓偏差↑
  • 惩罚项不含截距(通常中心化处理,可证截距不收缩)

3. 闭式解:一步到位的"岭估计量"

令 Aλ=XTX+λIp\mathbf{A}_\lambda = \mathbf{X}^T\mathbf{X} + \lambda \mathbf{I}pAλ=XTX+λIp,则
β^ridge=(XTX+λIp)−1XTy \hat{\beta}
{\text{ridge}} = (\mathbf{X}^T\mathbf{X} + \lambda \mathbf{I}_p)^{-1} \mathbf{X}^T\mathbf{y} β^ridge=(XTX+λIp)−1XTy

对比 OLS:β^OLS=(XTX)−1XTy\hat{\beta}_{\text{OLS}} = (\mathbf{X}^T\mathbf{X})^{-1} \mathbf{X}^T\mathbf{y}β^OLS=(XTX)−1XTy

  • 加上 λI\lambda \mathbf{I}λI 保证严格正定,逆矩阵永远存在 → 数值稳定
  • 特征值视角:eig(XTX)→eig(XTX)+λ\text{eig}(\mathbf{X}^T\mathbf{X}) \to \text{eig}(\mathbf{X}^T\mathbf{X}) + \lambdaeig(XTX)→eig(XTX)+λ,小特征值被"抬"离零

4. 偏差--方差权衡图示

情形 偏差 方差 总误差
λ=0\lambda = 0λ=0(OLS) 极高
λ↑\lambda \uparrowλ↑ ↓↓ 先↓后↑
λ→∞\lambda \to \inftyλ→∞ 极高(≈0) 0

最优 λ\lambdaλ 存在于偏差--方差曲线最低点,需借助交叉验证选取。


5. 贝叶斯视角:高斯先验 = L2 惩罚

假设参数先验 β∼N(0,σ2/λI)\beta \sim \mathcal{N}(0, \sigma^2/\lambda \mathbf{I})β∼N(0,σ2/λI),则后验众数恰好是岭解。

岭回归 ≈ 最大后验估计 (MAP) ,λ\lambdaλ 反映先验置信度。


6. 岭回归 vs. L2 正则化:说法不同,本质相同

维度 岭回归 (Ridge Regression) L2 正则化 (L2 Regularization)
语境 统计学习、计量经济 机器学习、优化社区
强调 一个具体模型:闭式解、推断、贝叶斯解释 一种通用技术 :在任意损失上添加 λ∣w∣2\lambda|\mathbf{w}|^2λ∣w∣2
数学形式 最小二乘 + λ∣β∣2\lambda|\beta|^2λ∣β∣2 任意损失 + λ∣w∣2\lambda|\mathbf{w}|^2λ∣w∣2
解的存在 永远有闭式解 可能需数值迭代(如深度学习)
可解释性 收缩路径可解析推导 通常作为黑盒惩罚项

一句话总结:
L2 正则化是"思想",岭回归是"思想 + 闭式解 + 统计推断"的完整模型。


7. 与 Lasso、Elastic Net 的关系

方法 惩罚形式 特性 解路径
Ridge λ∣β∣22\lambda |\beta|_2^2λ∣β∣22 连续收缩,不稀疏 闭式
Lasso λ∣β∣1\lambda |\beta|_1λ∣β∣1 自动特征选择 分段线性
Elastic Net λ1∣β∣1+λ2∣β∣22\lambda_1 |\beta|_1 + \lambda_2 |\beta|_2^2λ1∣β∣1+λ2∣β∣22 兼具稀疏与分组效应 数值

8. 快速代码:NumPy 一行实现

python 复制代码
import numpy as np

def ridge_closed_form(X, y, lam=1.0, fit_intercept=True):
    if fit_intercept:
        X = np.column_stack([np.ones(X.shape[0]), X])
    A = X.T @ X + lam * np.eye(X.shape[1])
    beta = np.linalg.solve(A, X.T @ y)   # 比inv更稳定
    return beta

9. 小结一句话

岭回归 = 最小二乘 + L2 约束,用可控的"偏差"换取巨大的"方差"下降,是高维、共线性场景下最稳健、最可解释的线性模型之一。

相关推荐
Enaium20 小时前
我实现了KMP的SDL绑定并编写了高性能软光追
前端·kotlin
Android打工仔21 小时前
Continuation 的链式关系 —— 一个 suspend 函数如何把结果交还给调用者?
android·kotlin
Kapaseker1 天前
小白都看得懂的 Skill 教程 - 初识 Skill
android·kotlin·vibecoding
zhangphil1 天前
Android Coil 3 ImageRequest.Builder error() 和 fallback()异同
android·kotlin
过期的秋刀鱼!2 天前
回归树-决策树推广到回归树
人工智能·算法·决策树·机器学习·数据挖掘·回归
我命由我123452 天前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
大黄说说2 天前
Java 与 Kotlin 混合开发避坑指南:老项目平滑迁移 Kotlin 实操手册
java·开发语言·kotlin
我命由我123452 天前
Android Drawable - gradient
android·java·java-ee·kotlin·android studio·android-studio·android runtime
Kapaseker2 天前
AI 时代,读源码还有用吗?从 Kotlin 集合排序说起
android·kotlin
YB13752 天前
jetpack compose 副作用 SideEffect
android·kotlin