岭回归与Lasso回归-ridge&lasso

岭回归与Lasso回归完全解析

一、为什么需要正则化回归?

1. OLS的困境

多元线性回归(OLS)是建模的基础方法,但当数据存在多重共线性变量过多时,OLS会面临两大问题: - 系数估计不稳定:微小数据变动导致系数剧烈波动 - 过拟合风险:模型在训练集表现好,但泛化能力差

2. 正则化的引入

通过在损失函数中加入惩罚项,限制模型复杂度: - 岭回归(Ridge):L2正则化 - Lasso回归:L1正则化


二、数学原理:从OLS到正则化

1. OLS回归

损失函数:
\[ \min_{\beta} \sum_{i=1}^n (y_i - \beta_0 - \sum_{j=1}^p \beta_j x_{ij})^2 \]

2. 岭回归(Ridge)

加入L2范数(欧氏范数)惩罚项(λ控制惩罚力度):
\[ \min_{\beta} \left[ \sum_{i=1}^n (y_i - \beta_0 - \sum_{j=1}^p \beta_j x_{ij})^2 + \lambda \sum_{j=1}^p \beta_j^2 \right] \]

特点: - 所有系数被等比例压缩,但不会归零 - 解决多重共线性问题,提升模型稳定性 - 是以放弃无偏性、降低精度为代价解决病态矩阵问题的回归方法

3. Lasso回归

加入L1(曼哈顿范数)惩罚项:
\[ \min_{\beta} \left[ \sum_{i=1}^n (y_i - \beta_0 - \sum_{j=1}^p \beta_j x_{ij})^2 + \lambda \sum_{j=1}^p |\beta_j| \right] \]

特点: - 可将不重要变量的系数压缩至零,实现变量选择 - 适用于高维数据(变量数>样本数)


三、核心操作:正则化参数λ的选择

1. 交叉验证(K-Fold CV)

  • 步骤:将数据分为K份,轮流用K-1份训练,1份验证,计算平均误差
  • 目标:选择使验证误差最小的λ值

2. 正则化路径

  • 岭回归:系数随λ增大逐渐趋近于零
  • Lasso:系数随λ增大会突然变为零

Python示例(可视化路径)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from sklearn.linear_model import LassoCV, RidgeCV
import matplotlib.pyplot as plt

# Lasso路径
alphas = np.logspace(-4, 0, 100)
coefs = []
for alpha in alphas:
lasso = Lasso(alpha=alpha)
lasso.fit(X, y)
coefs.append(lasso.coef_)

plt.plot(alphas, coefs)
plt.xscale('log')
plt.xlabel('λ')
plt.ylabel('Coefficients')
plt.title('Lasso Regularization Path')


四、实战案例:棉花产量预测

1. 数据说明

  • 自变量:种子费、化肥费、农药费、机械费、灌溉费
  • 因变量:棉花单产(1990-2007年数据)

2. 操作流程(Python实现)

(1) 数据标准化

1
2
3
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

(2) Lasso回归建模

1
2
3
4
5
6
7
8
9
from sklearn.linear_model import LassoCV

# 10折交叉验证选择λ
lasso = LassoCV(cv=10, random_state=42)
lasso.fit(X_scaled, y)

# 输出结果
print("最优λ:", lasso.alpha_)
print("非零系数:", lasso.coef_)

(3) 结果解读

1
2
最优λ:0.05
非零系数:种子费[0.32]、农药费[-0.34]、灌溉费[0.74]
  • 结论:机械费、化肥费被剔除,模型保留3个关键变量

五、注意

1. 必须标准化数据

  • 原因:正则化对尺度敏感,大范围变量会主导惩罚项
  • 方法:使用StandardScaler将变量标准化为均值为0,方差为1

2. 如何解释系数?

  • 岭回归:系数代表变量对目标的影响方向,但大小受λ影响
  • Lasso:非零系数表示重要变量,但绝对值无直接可比性

3. λ的选择陷阱

  • 过小:接近OLS,失去正则化效果
  • 过大:所有系数被过度压缩,模型欠拟合

六、模型对比与选择

指标 岭回归 Lasso回归
正则化类型 L2 L1
系数特性 连续压缩,不归零 稀疏性(部分归零)
适用场景 多重共线性严重 高维数据/变量选择
计算复杂度 解析解(快速) 需迭代优化(较慢)
软件实现 RidgeCV(Python) LassoCV(Python)

七、常见问题解答

Q1:何时用岭回归?何时用Lasso?

  • 岭回归:变量均重要,但存在共线性(如经济指标分析)
  • Lasso:变量数多,需筛选关键因素(如基因数据建模)

Q2:Elastic Net是什么?

  • 混合正则化:L1+L2,平衡变量选择与稳定性
  • 公式
    \[\text{损失函数} + \lambda (\alpha \sum |\beta_j| + (1-\alpha) \sum \beta_j^2)\]

Q3:如何解释λ=0的情况?

  • λ=0时,模型退化为普通OLS回归

岭回归与Lasso回归-ridge&lasso
http://example.com/2025/05/02/数学建模/预测类模型/2025-05-02-岭回归与Lasso回归/
作者
ZHW
发布于
2025年5月2日
许可协议