岭回归和 Lasso回归
前言
这部分内容本质上是和线性回归相关的,主要是解释什么是岭回归和 Lasso回归,也一定程度和机器学习的一小部分内容相关(概念上)。在阅读这篇文章之前,请确保你对线性回归和多重共线性有一定的了解基础。
请注意,本文并不涉及岭回归的代码实现和数学推导
岭回归
什么是岭回归
岭回归(Ridge Regression),是一种专门用于处理多重共线性(特征之间高度相关)问题的线性回归改进算法,显然它是一个回归模型。在多重共线性的情况下,数据矩阵可能不是满秩的,这意味着矩阵不可逆,因此不能直接使用普通最小二乘法(Ordinary Least Squares,OLS)来估计模型参数。岭回归通过在损失函数中添加一个正则化项(惩罚项)来解决这个问题。
岭回归也称为Tikhonov正则化(Tikhonov Regularization),这是因为一位名叫安德烈·吉洪诺夫 (Andrey Tikhonov) 的苏联数学家为“不适定问题” (ill-posed problems)”提出了通用且强大的解决方法。他的方法核心就是:在原始的目标函数上,增加一个惩罚项(也就是正则化项),来约束解的平滑性,从而得到一个稳定的、唯一的解。后来,当统计学家们把这个思想具体应用在线性回归领域来解决多重共线性问题时,就产生了我们所说的“岭回归”。
数学原理
线性回归模型
线性回归的基本形式是:$$y = \beta_0 + \beta_1x_1 + \beta_2x_2 + \dots + \beta_px_p + \epsilon$$
其中,$y$ 是响应变量,$x_1, x_2, \dots, x_p$ 是预测变量,$\beta_0, \beta_1, \dots, \beta_p$ 是模型参数,$\epsilon$ 是误差项。
损失函数
在线性回归中,通常使用最小二乘法来估计模型参数,即最小化残差平方和:
$$\large L(\beta) = \sum_{i=1}^{n}(y_i - (\beta_0 + \beta_1x_{i1} + \dots + \beta_px_{ip}))^2$$
岭回归的损失函数
岭回归在最小二乘法的基础上添加了一个L2范数的惩罚项,即:
$$\large L(\beta) = \sum_{i=1}^{n}(y_i - (\beta_0 + \beta_1x_{i1} + \dots + \beta_px_{ip}))^2 + \lambda\sum_{j=1}^{p}\beta_j^2$$
其中,$\lambda$ 是一个正的调节参数,用于控制惩罚项的强度。$\lambda$ 的值越大,对系数的惩罚越强,系数的值越小。
关于范数的理解可以在本文的最后找到
参数估计
为了找到最优的参数 $\beta$,我们需要对损失函数 $L(\beta)$ 求导,并令导数等于零。对于岭回归:
$$\large (X^TX + \lambda I)\beta = X^Ty$$
其中,$X$ 是设计矩阵,$I$ 是单位矩阵,$\beta$ 是参数向量,$y$ 是响应变量向量。
求解正规方程
解上述正规方程,我们可以得到岭回归的参数估计:$$\beta = (X^TX + \lambda I)^{-1}X^Ty$$
选择 $\lambda$
$\lambda$ 的选择对模型的预测性能有很大的影响。通常通过交叉验证 (Cross-validation) 来选择一个合适的 $\lambda$ 值。
说明
从另一角度的来理解岭回归,其实他是在普通最小二乘法的基础上(损失函数)加入了 L2 正则化项来解决多重共线性的问题。其优点在于:
- 处理多重共线性:岭回归能够有效处理特征之间的高度相关性,提高模型的稳定性。
- 泛化能力:通过正则化减少模型的复杂度,降低过拟合的风险。
- 参数解释性:岭回归的参数估计具有较好的解释性,可以用于统计推断。
对于岭回归的缺点而言,成也萧何败也萧何。岭回归最大的问题在于 $\lambda$ 的选择,这往往会引入一定程度的主观性,降低合理的可解释性。
Lasso 回归
Lasso 回归和岭回归可以说是思路是一致的,他也是通过生成一个惩罚函数是回归模型中的变量系数进行压缩,达到防止过度拟合,解决严重共线性的问题。不同的是他的惩罚函数是引入的系数绝对值之和( L1 正则化)来实现的。
Lasso 全称:Least Absolute Shrinkage and Selection Operator (最小绝对值收敛和选择算子)
Lasso 回归最先由英国人 Robert Tibshirani 提出,目前在预测模型中应用非常广泛。对于变量过多而样本量较少的模型拟合,首先要考虑使用Lasso 回归进行变量筛选。
Lasso 回归和岭回归不同的是岭回归对于系数的压缩是同等效应的,并且他会保证保留所有特征,即系数不为零。而 Lasso 回归只会保留相关关键特征,即存部分在系数为 0 的可能性。也就是说,对于 Lasso 回归而言,他不仅可以解决多重共线性的问题,而且当系数为 0 的时候也可以实现特征筛选的功能。
补充说明
L1 和 L2 范数
范数 (Norm) 就是一种衡量“长度”或“大小”的方法。直观来理解 L2 范数:直线距离 (L2 范数)
这是最直接的方式,就是“两点之间直线最短”。你可以直接从草地上斜着穿过去。 这个距离我们可以用初中学的勾股定理来计算:
1 | 距离 = √(3² + 4²) = √(9 + 16) = √25 = 5 |
这种我们最熟悉的、两点之间的直线距离,就是L2 范数,也叫“欧几里得范数”。
在岭回归里,我们用的惩罚项
x² + y²
其实就是 L2 范数的平方(去掉根号只是为了计算方便)。
直观来理解 L1 范数:城市街区距离 (L1 范数)
现在想象一下,你不在草地上,而是在像纽约曼哈顿那样的城市里。你不能斜着穿过大楼,必须沿着街道走。 要想到达 (3, 4) 这个点,你必须:
- 先向东走 3 个街区。
- 再向北走 4 个街区。 总共走的距离是:
1 | 距离 = |3| + |4| = 7 |
这种只能沿着坐标轴走的“街区距离”,就是L1 范数,也叫“曼哈顿范数”。
L1 和 L2 正则化
- L1 (Lasso 回归) 的惩罚是 系数的绝对值之和:
λ * (|a| + |b|)
- L2 (岭回归) 的惩罚是 系数的平方和:
λ * (a² + b²)
这个小小的区别(平方 vs 绝对值)导致了一个非常关键的不同点:
- L1 (Lasso 回归) 在把系数往 0 “拉”的时候,下手更“狠”,真的可以让很多系数变成 0。
- L2 (岭回归) 会把系数往 0 的方向“拉”,让它们变得很小,但几乎不会正好等于 0。它会保留所有的特征,只是减弱它们的影响力。