前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中的Lasso回归之最小角算法LARS

Python中的Lasso回归之最小角算法LARS

作者头像
拓端
发布2021-02-26 15:12:27
9320
发布2021-02-26 15:12:27
举报
文章被收录于专栏:拓端tecdat拓端tecdat

原文链接:http://tecdat.cn/?p=20379

假设我们期望因变量由潜在协变量子集的线性组合确定。然后,LARS算法提供了一种方法,可用于估计要包含的变量及其系数。 LARS解决方案没有给出矢量结果,而是由一条曲线组成,该曲线表示针对参数矢量L1范数的每个值的解决方案。该算法类似于逐步回归,但不是在每个步骤中都包含变量,而是在与每个变量的相关性与残差相关的方向上增加了估计的参数。

优点:

1.计算速度与逐步回归一样快。 2.它会生成完整的分段线性求解路径,这在交叉验证或类似的模型调整尝试中很有用。 3.如果两个变量与因变量几乎同等相关,则它们的系数应以大致相同的速率增加。该算法因此更加稳定。 4.可以轻松对其进行修改为其他估算模型(例如LASSO)提供解决方案。 5.在_p_ >> _n的_情况下有效 (即,当维数明显大于样本数时)。

缺点:

1.因变量中有任何数量的噪声,并且自变量具有 多重共线性 ,无法确定选定的变量很有可能成为实际的潜在因果变量。这个问题不是LARS独有的,因为它是变量选择方法的普遍问题。但是,由于LARS基于残差的迭代拟合,因此它似乎对噪声的影响特别敏感。 2.由于现实世界中几乎所有高维数据都会偶然地在某些变量上表现出一定程度的共线性,因此LARS具有相关变量的问题可能会限制其在高维数据中的应用。 Python代码:

代码语言:javascript
复制
 import matplotlib.pyplot as plt # 绘图
diabetes

查看数据

代码语言:javascript
复制
 x /= np.sqrt(np.sum((x)**2, axis=0)) # 归一化 x

lars.steps() # 执行的步骤数

est = lars.est() # 返回所有LARS估算值

plt.show()
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拓端数据部落 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文链接:http://tecdat.cn/?p=20379
  • 优点:
  • 缺点:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档