线性回归——Lasso回归和岭回归
线性回归——最⼩⼆乘
线性回归(linear regression),就是⽤线性函数 f(x)=w⊤x+bf(x)=w⊤x+b 去拟合⼀组数据 D={(x1,y1),(x2,y2),...,(xn,yn)}D={(x1,y1),(x2,y2),..., (xn,yn)} 并使得损失 J=1n∑ni=1(f(xi)−yi)2J=1n∑i=1n(f(xi)−yi)2 最⼩。线性回归的⽬标就是到⼀组 (w∗,b∗)(w∗,b∗),使得损失 JJ 最⼩。线性回归的拟合函数(或 hypothesis)为:
cost function (mse) 为:
Lasso回归和岭回归
Lasso 回归和岭回归(ridge regression)都是在标准线性回归的基础上修改 cost function,即修改式(2),其它地⽅不变。
Lasso 的全称为 least absolute shrinkage and selection operator,⼜译最⼩绝对值收敛和选择算⼦、套索算法。
Lasso 回归对式(2)加⼊ L1 正则化,其 cost function 如下:
岭回归对式(2)加⼊ L2 正则化,其 cost function 如下:
Lasso回归和岭回归的同和异:
相同:
都可以⽤来解决标准线性回归的过拟合问题。
不同:
lasso 可以⽤来做 feature selection,⽽ ridge 不⾏。或者说,lasso 更容易使得权重变为 0,⽽ ridge 更容易使得权重接近 0。正则化的回归分析
从贝叶斯⾓度看,lasso(L1 正则)等价于参数 ww 的先验概率分布满⾜拉普拉斯分布,⽽ ridge(L2 正则)等价于参数 ww 的先验概率分布满⾜⾼斯分布。具体参考博客。
也许会有个疑问,线性回归还会有过拟合问题?
加⼊ L1 或 L2 正则化,让权值尽可能⼩,最后构造⼀个所有参数都⽐较⼩的模型。因为⼀般认为参数值⼩的模型⽐较简单,能适应不同的数据集,也在⼀定程度上避免了过拟合现象。
可以设想⼀下对于⼀个线性回归⽅程,若参数很⼤,那么只要数据偏移⼀点点,就会对结果造成很⼤的影响;但如果参数⾜够⼩,数据偏移得多⼀点也不会对结果造成什⼳影响,⼀种流⾏的说法是『抗扰动能⼒强』。具体参见博客。
为什么 lasso 更容易使部分权重变为 0 ⽽ ridge 不⾏?
lasso 和 ridge regression 的⽬标都是 minw,bJminw,bJ,式(3)和(4)都是拉格朗⽇形式(with KKT条件),其中λλ为 KKT 乘⼦,我们也可以将 minw,bJminw,bJ 写成如下形式:
lasso regression:
ridge regression:
式(5)和(6)可以理解为,在 w限制的取值范围内,⼀个点 w^w^ 使得 mean square error 最⼩,tt 可以理解为正则化的⼒度,式(5)和(6)中的 tt 越⼩,就意味着式(3)和(4)中λλ越⼤,正则化的⼒度越⼤。
以 x∈R2x∈R2 为例,式(5)中对 ww 的限制空间是⽅形,⽽式(6)中对 ww 的限制空间是圆形。因为 lasso 对 ww 的限制空间是有棱⾓的,因此
的解更容易切在 w的某⼀个维为 0 的点。如下图所⽰:
Fig.1[1] Lasso (left) and ridge (right) regression.
Fig. 1 中的坐标系表⽰ ww 的两维,⼀圈⼜⼀圈的椭圆表⽰函数
的等⾼线,椭圆越往外,JJ 的值越⼤,w∗w∗表⽰使得损失 JJ 取得全局最优的值。使⽤ Gradient descent,也就是让 ww 向着 w∗w∗的位置⾛。如果没有 L1 或者 L2 正则化约束,w∗w∗是可以被取到的。但是,由于有了约束
w 的取值只能限制在 Fig. 1 所⽰的灰⾊⽅形和圆形区域。当然调整 t 的值,我们能够扩⼤这两个区域。
等⾼线从低到⾼第⼀次和 w 的取值范围相切的点,即是 lasso 和 ridge 回归想要的权重 w^。
lasso 限制了 w 的取值范围为有棱⾓的⽅形,⽽ ridge 限制了 w 的取值范围为圆形,等⾼线和⽅形区域的切点更有可能在坐标轴上,⽽等⾼线和圆形区域的切点在坐标轴上的概率很⼩。这就是为什么 lasso(L1 正则化)更容易使得部分权重取 0,使权重变稀疏;⽽ ridge(L2 正则化)只能使权重接近 0,很少等于 0。
正是由于 lasso 容易使得部分权重取 0,所以可以⽤其做 feature selection,lasso 的名字就指出了它是⼀个 selection operator。权重为 0 的feature 对回归问题没有贡献,直接去掉权重为 0 的 feature,模型的输出值不变。
对于 ridge regression 进⾏ feature selection,你说它完全不可以吧也不是,weight 趋近于 0 的 feature 不要了不也可以,但是对模型的效果还是有损伤的,这个前提还得是 feature 进⾏了归⼀化。
如果你的模型中有很多变量对模型都有些许影响,那么⽤Ridge;当数据量特别⼤的时候更倾向于⽤Ridge,因为Ridge计算起来更快。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。