Lasso算法

139 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

Lasso算法从最先开始就是为最小二问题的解决而产生的,与岭回归不同;岭回归限定了所有回归系数的平方和不大于t,也就是把所有系数限制在一个多维球体内,包括球面,这样就避免了在使用普通最小二乘法回归的时候,当两个变量相关时,可能产生的两个正负大系数(喇叭口),随着正则项的lambda的增大,高幅振荡的系数迅速转向平稳(参看岭轨迹线)  

Lasso算法采用了同样的思路,只不过是另一种限制方式,范数1约束。

在二维情况下这个约束区域是一个正方形围成的区域(让学生说出原因),这一点与岭回归有很大不同。为了更好理解lasso回归,我们用几何分析法来阐述它的基本原理,我们先回到岭回归的几何含以上:

我们知道岭回归的损失函数达式为: 图片.png

这是他的拉格朗日算子形式形式,在求损失函数最小值的时候,他其实等价于下列等式: 图片.png

(参看数据分析二的朗格朗日乘子法)

它的几何意义是在一个圆域内寻找损失函数的最小值。如下图:

图片.png

损失函数是一个标量函数,我们假设它是从二维到一维的一个曲面函数(α1,α2是两个自变量参数,S(α1,α2)是一关于这两个变量的标量函数,他们的坐标(α1,α2,S(α1,α2))在三维空间中是一个曲面,上图可看做它在二维空间的投影)红色区域可看做它在二维平面的投影,一个个相套的圆圈是等值线,更形象描述是等高线。

在圆域内寻找唯一最小值意味着等高线(不必要是最小值等高线,因为相切的话,即使红色区域中有最小值,由于不在圆域内,因此不作数。)与某一圆域相切。(相交的话会产生很多最小值)

当lambda的值增大,曲面所覆盖范围扩展(等高线要增大),投影也会扩展(只看等式‘#’,不改变函数,函数值增大,只有通过扩大定义域来实现),产生新的等高线,为了保证相切,t会相对缩小,回归系数会向0缩进。反之,lambda值减小等高线回缩,t增大,回归系数会全部逐步增大。

相对于岭回归,lasso回归的是在一个方形域内寻找唯一最小值,和岭回归原理一样,lasso回归也是lambda增加,t减小。只不过在减小的过程中,会有系数不断的减小为0,其原因是,方形的顶点非常容易与等值线相切,且相切时,部分系数归0,这一点是岭回归很难做到的。如下图所示,当顶点与等价线相切时,y方向回归系数会自动归零。

  图片.png

Lasso 算法特点:

  1. 十分适合稀疏矩阵

  2. λ增大时,不重要的变量回归系数=0

 

下列情况不采用lasso 算法

  1. 不是稀疏矩阵时,预测效果不是特别好

  2. 高度多重相关性时,预测效果不好