Ridge、Lasso、ElasticNet 回归
线性回归中,提到线性回归的 \(L2\) 正则化(\(Ridge\) 回归),以及线性回归的 \(L1\) 正则化(\(Lasso\) 回归).
1. 线性回归
线性回归的矩阵形式:
极小化损失函数:
用梯度下降法求解,每一轮 \(\theta\) 的表达式:
其中,\(n\) 为样本个数,\(\alpha\) 为步长。
用最小二乘法,\(\theta\) 的表达式:
2. Ridge 回归
损失函数加入 \(L2\) 正则化项和权重系数 \(\pmb{\alpha}\) 的就是 \(Ridge\) 回归,也称岭回归、脊回归。
损失函数的表达式:
其中,\(n\) 为样本个数,\(\pmb{\alpha}\) 为常数系数,\(\pmb{||\theta||_2}\) 为 \(L2\) 范数。
\(Ridge\) 回归用梯度下降法求解,每一轮 \(\theta\) 的表达式:
其中,\(\beta\) 为步长。
用最小二乘法,\(\theta\) 的表达式:
其中,\(E\) 为单位矩阵。
\(Ridge\) 回归选择所有变量的情况下,缩小了回归系数,使得模型相对比较稳定,但模型的变量过多,解释性差。
\(Lasso\) 回归克服 \(Ridge\) 回归变量过多的缺点。
3. Lasso 回归
损失函数加入 \(L1\) 正则化和权重系数 \(\pmb{\alpha}\) 就是 \(Lasso\) 回归。
损失函数表达式:
其中,\(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\))。
损失函数表达式:
其中,\(n\) 表示样本个数,\(m\) 表示维度。
当 \(\rho = 0\) 时,\(ElasticNet\) 回归等同于 \(Ridge\) 回归。
当 \(\rho=1\) 时,,\(ElasticNet\) 回归等同于 \(Lasso\) 回归,此时,\(ElasticNet\) 回归的损失函数不是连续可导的,可用坐标轴下降法、最小角回归法求解 \(\theta\)。
7. 总结
\(Lasso\) 回归是在 \(Ridge\) 回归的基础上发展起来的,如果模型的特征非常多,选择 \(Lasso\) 回归。
来自:刘建平