线性回归中,提到线性回归的 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||θ||2 为 L2 范数。
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||θ||1 为 L1 范数。
Lasso 回归使一些系数变小,甚至还使一些绝对值较小的系数直接变为 0,因此特别适用于参数个数缩减与参数的选择,因而用来估计稀疏参数的线性模型,
Lasso 回归的损失函数不是连续可导的,由于 L1 范数用的是绝对值之和,导致损失函数有不可导点。也就是说,用来求损失函数极小值的方法,最小二乘法、梯度下降法、拟牛顿法、牛顿法,对它都是失效的。
所以 Lasso 回归的损失函数求极值方法:坐标轴下降法(coordinate descent)、最小角回归法(Least Angle Regression, LARS)。
4. 坐标轴下降法求解 Lasso 回归
5. 最小角回归法求解 Lasso 回归
6. ElasticNet 回归
损失函数加入 L1、L2 正则化和权重系数 λ、ρ 就是弹性网络回归算法(Elastic Net Regression)。
损失函数表达式:
L(θ)=n∑i=1(hθ(x(i)0,x(i)1,...,x(n)m)−yi)2+λρ||θ||1+λ(1−ρ)2||θ||22
其中,n 表示样本个数,m 表示维度。
当 ρ=0 时,ElasticNet 回归等同于 Ridge 回归。
当 ρ=1 时,,ElasticNet 回归等同于 Lasso 回归,此时,ElasticNet 回归的损失函数不是连续可导的,可用坐标轴下降法、最小角回归法求解 θ。
7. 总结
Lasso 回归是在 Ridge 回归的基础上发展起来的,如果模型的特征非常多,选择 Lasso 回归。
来自:刘建平
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)