对LARS(Least Angle Regression)的简单理解

对LARS(Least Angle Regression)的简单理解前言我在本科的时候接触过用LASSO筛选变量的方法,但了解不多。这几天在公司实习,学习到特征选择,发现还有个LARS是经常和LASSO一起被提起的,于是我临时抱佛脚,大概了解了一下LARS的原理。在看文章的时候发现很多人提到SolutionPath这样一个概念,感觉很费解,后来参阅了Efron等人的"LeastAngleRegression"论文,总算是明白了一些。不过本人由于懒,后面数学…

大家好,又见面了,我是你们的朋友全栈君。

前言

我在本科的时候接触过用LASSO筛选变量的方法,但了解不多。这几天在公司实习,学习到特征选择,发现还有个LARS是经常和LASSO一起被提起的,于是我临时抱佛脚,大概了解了一下LARS的原理。

在看文章的时候发现很多人提到Solution Path这样一个概念,起初很费解,后来看了Efron等人的”Least Angle Regression”论文,算是明白了一些。不过本人由于懒,原文后面数学证明的部分直接跳过了,这里推荐想了解LASSO和LARS的人先读一下这篇论文,极其有助于理解。

在介绍LARS之前,需要简单讲一下它的前辈:Foward Stepwise Regression(向前逐步回归)、Stagewise Regression(“逐步的逐步回归”)、还有LASSO回归。

Stepwise(逐步回归)

为什么会需要对变量进行逐步回归,这是因为有的时候备选变量太多,全部丢进回归模型会导致模型复杂度过高、甚至是拟合精度下降。逐步回归是一种挑选变量的方式,就像买萝卜一样,从最大的萝卜挑起,再挑次大的,次次大的,一直到挑够10个萝卜,然后去结账。但挑选变量不是买萝卜这么简单,变量之间或多或少有相关性,而我们用逐步回归挑选变量的时候,可能会错过一些和现有变量相关度高,而又很重要的变量。

这是逐步回归模型本身的问题。逐步回归的原理是:先挑一个和 y 相关度最高的变量 x1,然后跑 yx1 的回归,这时 x1 的回归系数会等于 x1y 的相关系数ρ1,模型的残差为 r1,再从剩下变量中选出和 r1 相关系数(绝对值)最大的变量 x2,再把 ρ2x2 加入回归中,以此类推。

对LARS(Least Angle Regression)的简单理解

注意,线性回归当前选用的 X 组成一个向量空间,y_fity 在这个向量空间上的投影,而残差 r 垂直于这个向量空间,即残差和当前所有变量无关。

对LARS(Least Angle Regression)的简单理解

那么在挑选下一个变量时,我们会选择那些与 r 相关的变量,而忽视那些与 r 无关,但和 X 有关的变量。这是逐步回归的一大缺点。

那么,有没有一种不那么激进的方法呢?有,其一便是Stagewise法。

Stagewise

Stepwise在挑选完变量后,直接把 ρx 加入模型中,但Stagewise不这么做,他一次加一部分,一次加一部分,这一部分记作 εx。ε 可以理解为步长,是一个很小的数。

初始时模型中没有变量,所有 β = 0,我们求得与 y 最相关的变量是 x1,于是从 β1 = ±ε 开始,按增量 ±ε 改变 β1(步长正负取决于相关系数的正负),而随着添加进回归的 ±εx 增多,x 和模型残差的相关系数会越来越小,或者说,残差中越来越多的部分被x所解释。当 corr(x1, r) 低至一个阈值时——这个阈值就是残差和次位赢家 x2 的相关系数 corr(x2, r) ,我们开始把 ±εx2 加进模型。这时 x1 的系数 β1 固定不变了,我们以步长 ±ε 改变 β2,降低 corr(x2, r’) ,直到 corr(x2, r’) = max(corr(xi, r’)),以此类推。

这个方法相比Stepwise要谨慎许多,但显而易见的是,这个模型的运算速度受步长限制,当步长很小时,模型的运算十分复杂。

LARS

LARS的思路很简单:我们让步长ε尽量大一点,再尽量大一点。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151250.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • nuc window 激活码【在线注册码/序列号/破解码】

    nuc window 激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    81
  • linux 文件重命名的命令是什么_linux移动文件并重命名

    linux 文件重命名的命令是什么_linux移动文件并重命名就目前所知道的知识,有两种方法。一、rmrm命令最简单,也更好掌握。形如:rmoldnamenewname二、renamerename命令更加健壮,不仅支持普通的文件重命名,而且还支持模式匹配。在开发速度上给我们带来了很大的便利。形如:renamefromnametonamefilenames相关例子可以参考有关文章–linux下rename用法(批量重命名)

    2025年10月18日
    4
  • modelsim-win64-10.4-se 破解攻略

    modelsim-win64-10.4-se 破解攻略在实验室换了新的win10系统,原来的quartus9.0在win10上安装不成功,没办法只能换成13.1版本,已经安装可用,下面是与其配合的modelsim-win64-10.4-se的破解攻略,安装教程可以去看正点原子的FPGA开发手册,写的很详细,但是没有讲破解方法,下面是可用的破解方法:软件安装好了却不能用,想必大家都有过这样的痛苦和无奈。这款软件的破解花了我整整一个下午的时间…

    2022年5月24日
    166
  • html遮罩层动画制作,flash简单制作遮罩动画效果[通俗易懂]

    html遮罩层动画制作,flash简单制作遮罩动画效果[通俗易懂]flash简单制作遮罩动画效果QQ空间的开机动画大家应该都有,从最初的出现的一点到后面全部出现,如此神奇的效果到底是怎么做的呢,一起来看看吧!遮罩特效:由于百度只能上传500k以内的照片,所以效果图片质量不是很好,当然,我们一般做的特效是.swf,这里是为了方便大家观看,所以做成了gif.步骤:1、打开flash面板,创建新项目。2、点击文件——导入——导入一张图片。3、窗口——库,这里我们可以…

    2022年5月1日
    93
  • 部署rsyslog[通俗易懂]

    部署rsyslog[通俗易懂]为了收集一个服务的业务日志,用于监控接口超时时间,简单应用所以用rsyslog来做一、客户端配置type=“imfile”:固定的配置,直接复制使用File="/home/homework/xxx.log":需要发送的日志路径和名称Tag=“mall-order_debug”:tag标签,自行定义Severity=“debug”:日志级别,自己定义Facility=

    2022年9月24日
    3
  • php rewriterule 规则,如何将一条RewriteCond 对应多个RewriteRule规则

    php rewriterule 规则,如何将一条RewriteCond 对应多个RewriteRule规则RewriteCond是对RewriteRule的条件筛选,一般情况下一个RewriteRule前面有多个RewriteCond,我们想让bbs这个子域名下的链接访问bbs这个目录,而其他子域名则访问web这个子目录,于是有了下面这种写法。RewriteCond%{HTTP_HOST}^bbs.heycode.com$RewriteRule^news-(d+).html$/bbs/news…

    2022年5月15日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号