Ridge、Lasso、ElasticNet 回归


线性回归中,提到线性回归的 \(L2\) 正则化(\(Ridge\) 回归),以及线性回归的 \(L1\) 正则化(\(Lasso\) 回归).



1. 线性回归

线性回归的矩阵形式:

\[\pmb{h_\theta X = X \theta} \]

极小化损失函数:

\[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta -Y)} \]

用梯度下降法求解,每一轮 \(\theta\) 的表达式:

\[\theta = \theta - \alpha \pmb{X}^T (\pmb{X} \theta - \pmb{Y}) \]

其中,\(n\) 为样本个数,\(\alpha\) 为步长。

用最小二乘法,\(\theta\) 的表达式:

\[\theta = \pmb{(X^TX)^{-1} X^TY} \]



2. Ridge 回归

损失函数加入 \(L2\) 正则化项和权重系数 \(\pmb{\alpha}\) 的就是 \(Ridge\) 回归,也称岭回归、脊回归

损失函数的表达式:

\[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta - Y)} + \frac{1}{2} \pmb{\alpha ||\theta||_{2}^{2}} \]

其中,\(n\) 为样本个数,\(\pmb{\alpha}\) 为常数系数,\(\pmb{||\theta||_2}\)\(L2\) 范数。

\(Ridge\) 回归用梯度下降法求解,每一轮 \(\theta\) 的表达式:

\[\theta = \theta - \beta(\pmb{X^T}(\pmb{X}\theta - \pmb{Y}) + \pmb{\alpha} \theta) \]

其中,\(\beta\) 为步长。

用最小二乘法,\(\theta\) 的表达式:

\[\theta = \pmb{(X^TX + \alpha E)^{-1} X^TY} \]

其中,\(E\) 为单位矩阵。

\(Ridge\) 回归选择所有变量的情况下,缩小了回归系数,使得模型相对比较稳定,但模型的变量过多,解释性差

\(Lasso\) 回归克服 \(Ridge\) 回归变量过多的缺点。



3. Lasso 回归

损失函数加入 \(L1\) 正则化和权重系数 \(\pmb{\alpha}\) 就是 \(Lasso\) 回归。

损失函数表达式:

\[\pmb{L(\theta)} = \frac{1}{2n} \pmb{(X \theta - Y)^T (X \theta - Y)} + \pmb{\alpha ||\theta||_1} \]

其中,\(n\) 为样本个数,\(\pmb{\alpha}\) 为常数系数,\(\pmb{||\theta||_1}\)\(L1\) 范数。

\(Lasso\) 回归使一些系数变小,甚至还使一些绝对值较小的系数直接变为 \(0\),因此特别适用于参数个数缩减与参数的选择,因而用来估计稀疏参数的线性模型,

\(Lasso\) 回归的损失函数不是连续可导的,由于 \(L1\) 范数用的是绝对值之和,导致损失函数有不可导点。也就是说,用来求损失函数极小值的方法,最小二乘法、梯度下降法、拟牛顿法、牛顿法,对它都是失效的

所以 \(Lasso\) 回归的损失函数求极值方法:坐标轴下降法(\(coordinate\ descent\))、最小角回归法(\(Least\ Angle\ Regression,\ LARS\)



4. 坐标轴下降法求解 Lasso 回归


5. 最小角回归法求解 Lasso 回归


6. ElasticNet 回归

损失函数加入 \(L1、L2\) 正则化和权重系数 \(\lambda、\rho\) 就是弹性网络回归算法(\(Elastic\ Net\ Regression\))。

损失函数表达式:

\[L(\theta) = \sum_{i=1}^{n}(h_{\theta}(x_{0}^{(i)},x_{1}^{(i)},...,x_{m}^{(n)})- y_i)^2 + \lambda \rho ||\theta||_1 + \frac{\lambda (1-\rho)}{2} ||\theta||_2^2 \]

其中,\(n\) 表示样本个数,\(m\) 表示维度。

\(\rho = 0\) 时,\(ElasticNet\) 回归等同于 \(Ridge\) 回归

\(\rho=1\) 时,,\(ElasticNet\) 回归等同于 \(Lasso\) 回归,此时,\(ElasticNet\) 回归的损失函数不是连续可导的,可用坐标轴下降法、最小角回归法求解 \(\theta\)

7. 总结

\(Lasso\) 回归是在 \(Ridge\) 回归的基础上发展起来的,如果模型的特征非常多,选择 \(Lasso\) 回归。



来自:刘建平

posted @ 2022-05-04 19:37  做梦当财神  阅读(302)  评论(0编辑  收藏  举报