当前位置:   article > 正文

机器学习——LASSO算法

机器学习——LASSO算法

LASSO算法的简单介绍

LASSO算法和岭回归算法在应用目的上其实都是相似的,这两种算法的本质就是两种不同的正则化方法
下面来看看这两种方法的对比:
在这里插入图片描述
在这里插入图片描述
岭回归是L1正则化,LASSO是L2正则化。两个回归系数的值都可以用来限制t,取值有相同的地方。这是一张表示系数和代价函数值关系的图:
在这里插入图片描述
红色的圈圈表示的是代价函数值等高线,中间的黑点表示最小值。蓝色区域是系数的选取范围,可以看到,当选取范围和等高线交界的地方是最合适的取值点,这时即符合选取范围,代价函数的值也越接近中心的最小值。

python实现——sklearnLASSO算法

来看看实验用到的数据:
在这里插入图片描述
在这里插入图片描述
代码实现:
在这里插入图片描述
lasson算法的模型也是用到交叉验证法,但和岭回归相比,不用传入参数,因为这个方法本身就有很多参数,直接用它内部的参数计算即可。
在这里插入图片描述
然后打印结果看看效果如何:
在这里插入图片描述
在这里插入图片描述
14.13是求得的lasson系数,第二行是相关系数,可以理解为特征,后面的3个0表示这3个特征量可能是线性重复,对lasson的计算没有太大帮助和影响,而前面3个特征则是有影响的。从这里我们看到lasson的解释性是很强的,最后得到的预测结果115.7和真实结果一样。

弹性网

岭回归和lasson用的其实都是一个算法公式,不同的参数取值会得到岭回归和lasson或者其他一些算法。
在这里插入图片描述
当q是1时就是lasson,q是2时就是岭回归,其他类型的一般很少用,效果不如这两种好。弹性网则结合了lasson和岭回归两种算法,吸取了两种算法的特点,这是一种相对来说比较新的算法。
在这里插入图片描述
当α取0.2时得到类似lasson的图形,但是边是弯曲的,所以被称为弹性网,这时岭回归前面的系数是0.2,lasson前面的系数是0.8,说明lasson的比重比较大,这就是和 lasson的图形类似的原因。

python实现——弹性网

数据和上面的lasson用到的数据是一样的,代码开始部分都一样。
在这里插入图片描述
在这里插入图片描述
这里和lasson一样也是不用传入参数的,只不过调用的方法不同。结果也和lasson一样可以得到相关系数和本身的弹性系数。
在这里插入图片描述
在这里插入图片描述
可以看到结果形式和lasson差不多,理论上说,因为弹性网结合了岭回归和lasson的特点,所以得到的预测值应该比这两种算法都要好。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/607676
推荐阅读
相关标签
  

闽ICP备14008679号