本文接上篇:Scikit-Learn线性回归(五)
在上篇中,我们详解了误差与模型复杂度的关系、范数与正则化、Scikit-Learn岭回归及使用案例
我们已经知道,岭回归模型可以解决线性回归模型中矩阵 X ′ X X'X X′X不可逆的问题,岭回归通过给损失函数添加L2正则化项(惩罚项)使得偏回归系数缩小(趋于0)。但是不管如何减小,岭回归都会始终保留建模时的所有特征(自变量),因此岭回归无法降低模型的复杂度。从广义上来讲,岭回归只是让回归曲线变得更平滑(收敛)了,这一点上,岭回归也算降低了模型的复杂度。岭回归最大的问题在于无法稀疏化特征、不能做特征选择。而Lasso回归模型克服了一点
岭回归为损失函数添加了L2正则化项,而Lasso回归为损失函数添加了L1正则化项。Lasso回归的损失函数定义为:
L ( ω ) = ∑ i = 1 m ( y i − y ) 2 + λ ∑ i = 1 m ∣ ω i ∣ = ∣ ∣ Y − X ω ∣ ∣ 2 + λ ∣ ∣ ω ∣ ∣ 1 L(\omega)={\sum_{i=1}^m}(y_i-y)^2+\lambda {\sum_{i=1}^m}|ω_i|=||Y-X\omega||^2+\lambda {||\omega||_1} L(ω)=i=1∑m(yi−y)2+λi=1∑m∣ωi∣=∣∣Y−Xω∣∣2+λ∣∣ω∣∣1
其中, λ ∣ ∣ ω ∣ ∣ 1 = λ ∑ i = 1 m ∣ ω i ∣ \lambda {||\omega||_1}=\lambda {\sum_{i=1}^m}|ω_i| λ∣∣ω∣∣1=λ∑i=1m∣ωi∣,即L1正则化项,它是目标函数的惩罚项。需要注意的是,正则化项中的回归系数 ω i ω_i ω