Ridge、Lasso、ElasticNet 回归


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



1. 线性回归

线性回归的矩阵形式:

hθX=XθhθX=Xθ

极小化损失函数:

L(θ)L(θ)=12n(XθY)T(XθY)(XθY)T(XθY)

用梯度下降法求解,每一轮 θ 的表达式:

θ=θαXXT(XXθYY)

其中,n 为样本个数,α 为步长。

用最小二乘法,θ 的表达式:

θ=(XTX)1XTY(XTX)1XTY



2. Ridge 回归

损失函数加入 L2 正则化项和权重系数 αα 的就是 Ridge 回归,也称岭回归、脊回归

损失函数的表达式:

L(θ)L(θ)=12n(XθY)T(XθY)(XθY)T(XθY)+12α||θ||22α||θ||22

其中,n 为样本个数,αα 为常数系数,||θ||2||θ||2L2 范数。

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

θ=θβ(XTXT(XXθYY)+ααθ)

其中,β 为步长。

用最小二乘法,θ 的表达式:

θ=(XTX+αE)1XTY(XTX+αE)1XTY

其中,E 为单位矩阵。

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

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



3. Lasso 回归

损失函数加入 L1 正则化和权重系数 αα 就是 Lasso 回归。

损失函数表达式:

L(θ)L(θ)=12n(XθY)T(XθY)(XθY)T(XθY)+α||θ||1α||θ||1

其中,n 为样本个数,αα 为常数系数,||θ||1||θ||1L1 范数。

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

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

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



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


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


6. ElasticNet 回归

损失函数加入 L1L2 正则化和权重系数 λρ 就是弹性网络回归算法(Elastic Net Regression)。

损失函数表达式:

L(θ)=i=1n(hθ(x0(i),x1(i),...,xm(n))yi)2+λρ||θ||1+λ(1ρ)2||θ||22

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

ρ=0 时,ElasticNet 回归等同于 Ridge 回归

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

7. 总结

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



来自:刘建平

posted @   做梦当财神  阅读(327)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示