• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

互联网 diligentman 6天前 5次浏览

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

优点:

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

缺点:

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

 import matplotlib.pyplot as plt # 绘图
diabetes 

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

查看数据 

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

 x /= np.sqrt(np.sum((x)**2, axis=0)) # 归一化 x

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

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

plt.show()

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

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


程序员灯塔
转载请注明原文链接:Python中的Lasso回归之最小角算法LARS
喜欢 (0)