Lasso(Least absolute shrinkage and selection operator)方法是以缩小变量集(降阶)为思想的压缩估计方法。它通过构造一个惩罚函数,可以将变量的系数进行压缩并使某些回归系数变为0,进而达到变量选择的目的。
正则化
正则化(Regularizaiton)是一种防止过拟合的方法。
图1 欠拟合与过拟合
图来自:百度百科(过拟合)
从图中可以看出,最右边的属于一种过拟合,过拟合的问题通常发生在变量(特征)过多的时候,这种情况下训练出的方程总是能很好的拟合训练数据,也就是损失函数可能非常接近于 0 或者就为 0。 但是,这样的曲线会导致它无法泛化到新的数据样本中。
如果解决过拟合问题?
(1)尽量减少选取变量的数量
可以人工检查每一项变量,并以此来确定哪些变量更为重要,保留那些更为重要的特征变量。这种做法非常有效,但是其缺点是当舍弃一部分特征变量时,也舍弃了问题中的一些信息。例如,所有的特征变量对于预测房价都是有用的,实际上并不想舍弃一些信息或者说舍弃这些特征变量。
(2)正则化
在正则化中将保留所有的特征变量,但是会减小特征变量的数量级。 当有很多特征变量时,其中每一个变量都能对预测产生一点影响。假设在房价预测的例子中,可以有很多特征变量,其中每一个变量都是有用的,因此不希望把任何一个变量删掉,这就导致了正则化概念的发生。
如果应用正则化去解决实际问题?
在图1中,可以看出最右边的是过拟合的,但是不想抛弃

优化目标为:
在优化目标的基础上,添加一些项(惩罚项),如下:
1000 只是随便写的一个表示很大的数字。现在,如果想要最小化这个函数,那么为了最小化这个新的损失函数,就要让 











但是在真实问题中,一个预测问题可能有上百种特征,并不知道哪一些是高阶多项式的项,就像不知道

因此,我们需要修改代价函数,变成如下形式:
![lasso回归的解_适合做lasso回归的数据「建议收藏」插图17 \frac{1}{2 m}\left[\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}+\lambda \sum_{j=1}^{n} \theta_{j}^{2}\right]](https://bianchenghao.cn/wp-content/uploads/2022/12/2022122605452522.jpg)
其中
Lasso回归模型
Lasso回归是在损失函数后,加L1正则化,如下所示:
m为样本个数,k为参数个数,其中
此外:还有L2正则化:
为什么Lasso可以做降维?
图2
以二维数据空间为例,说明Lasso和Ridge两种方法的差异,左图对应于Lasso方法,右图对应于Ridge方法。
如上图所示,两个图是对应于两种方法的等高线与约束域。红色的椭圆代表的是随着λ的变化所得到的残差平方和,βˆ为椭圆的中心点,为对应普通线性模型的最小二乘估计。左右两个图的区别在于约束域,即对应的蓝色区域。
等高线和约束域的切点就是目标函数的最优解,Ridge方法对应的约束域是圆,其切点只会存在于圆周上,不会与坐标轴相切,则在任一维度上的取值都不为0,因此没有稀疏;对于Lasso方法,其约束域是正方形,会存在与坐标轴的切点,使得部分维度特征权重为0,因此很容易产生稀疏的结果。
所以,Lasso方法可以达到变量选择的效果,将不显著的变量系数压缩至0,而Ridge方法虽然也对原本的系数进行了一定程度的压缩,但是任一系数都不会压缩至0,最终模型保留了所有的变量。
以二维空间为例,约束域在L1中,为
约束域在L2中,为
由图也可以看出,Lasso的复杂程度由λ来控制,λ越大对变量较多的线性模型的惩罚力度就越大,从而最终获得一个变量较少的模型。
上述参考:回归问题-Lasso回归
参数求解
但是Lasso回归有一个很大的问题,就是由于L1正则化项用的是绝对值之和,导致损失函数有不可导的点。也就是说,梯度下降法等优化算法对它统统失效了。
那怎么才能求损失函数极小值呢?接下来介绍两种全新的求极值解法:坐标轴下降法(coordinate descent)和最小角回归法( Least Angle Regression, LARS)
(1)坐标轴下降法
坐标轴下降法顾名思义,是沿着坐标轴的方向去下降,这和梯度下降不同。梯度下降是沿着梯度的负方向下降。不过梯度下降和坐标轴下降的共性就都是迭代法,通过启发式的方式一步步迭代求解函数的最小值。
坐标轴下降法的数学依据主要是如下的这个结论:
一个可微的凸函数J(θ),其中θ是nx1的向量,即有n个维度。如果在某一点



具体的算法过程:
(1)把θ向量随机取一个初值。记为
(2)对于第k轮的迭代,我们从








(3)检查


此外,SVM中对于带有惩罚项的软间隔问题,利用的就是此种思想:序列最小优化算法(SMO)。
(2)最小角回归法
预备算法:A.前向选择(Forward Selection)算法。
前向选择算法的原理是是一种典型的贪心算法。要解决的问题是对于:

把矩阵X看做n个m*1的向量



其中:
<>表示两向量的内积,下面是向量

即:







当X只有2维时,例子如上图,和Y最接近的是






此算法对每个变量只需要执行一次操作,效率高,速度快。但也容易看出,当自变量不是正交的时候,由于每次都是在做投影,所有算法只能给出一个局部近似解。因此,这个简单的算法太粗糙。
B.前向梯度(Forward Stagewise)算法
前向梯度算法和前向选择算法有类似的地方,但是前向梯度算法不是粗暴的用投影,而是每次在最为接近的自变量





当X只有2维时,例子如上图,和Y最接近的是,首先在







当算法在ε很小的时候,可以很精确的给出最优解,当然,其计算的迭代次数也是大大的增加。和前向选择算法相比,前向梯度算法更加精确,但是更加复杂。
最小角回归法(Least Angle Regression, LARS)就是一种折中的方法,可以综合前向梯度算法和前向选择算法的优点,保留了前向梯度算法一定程度的精确性,同时简化了前向梯度算法一步步迭代的过程。
最小角回归过程如下:
首先,还是找到与因变量Y最接近或者相关度最高的自变量

















当θ只有2维时,例子如上图,和Y最接近的是





最小角回归法是一个适用于高维数据的回归算法,其主要的优点有:
1)特别适合于特征维度n 远高于样本数m的情况。
2)算法的最坏计算复杂度和最小二乘法类似,但是其计算速度几乎和前向选择算法一样
3)可以产生分段线性结果的完整路径,这在模型的交叉验证中极为有用
主要的缺点是:
由于LARS的迭代方向是根据目标的残差而定,所以该算法对样本的噪声极为敏感。
以上是刘建平老师博客的主要内容,详见:https://www.cnblogs.com/pinard/p/6018889.html
关于LARS与Lasso回归关系,
用下面的图,从数学角度,进一步解释LARS。
如上图所示,如果把



在前进的过程里,把








当往角平分线的方向前进时,无论是









上述过程,可以用下面公式这个公式表达,




而Lasso回归如下:
由于涉及到了绝对值问题,所以求解参数过程如下:
由于



对loss求导有:
令

到这里可以发现最终w满足的方程式和LARS很像,不同的是符号函数的情况,这也是导致差异的原因 。我们知道得到公式(1)的前提是对上式的求导,但是都满足可导吗?请看下图:

发现除了约束条件的四个顶点不可导以外,其他均可导,不可导的情况就是某一个
基于上述原因,将LARS做修正,就可以用在Lasso里面,即如果有一个非零系数(
今天的文章lasso回归的解_适合做lasso回归的数据「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71569.html






