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

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

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

优点:

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

缺点:

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

import matplotlib.pyplot as plt # 绘图
diabetes

查看数据

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

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

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

plt.show()


(0)

相关推荐

  • Lasso算法理论介绍

    先看一波过拟合: 图中,红色的线存在明显的过拟合,绿色的线才是合理的拟合曲线,为了避免过拟合,我们可以引入正则化. 下面可以利用正则化来解决曲线拟合过程中的过拟合发生,存在均方根误差也叫标准误差,即为 ...

  • Lasso回归算法:坐标轴下降法与最小角回归法小结

    公众号后台回复"python",立刻领取100本机器学习必备Python电子书 前面的文章对线性回归做了一个小结,文章在这:线性回归原理小结.里面对线程回归的正则化也做了一个初步的 ...

  • 数据挖掘:基于R语言的实战 | 第6章:线性模型与广义线性模型

    第6章给大家介绍实际场景中最常用的两种统计模型,线性模型和广义线性模型.本章首先在6.1节中介绍线性模型,然后在6.2节中介绍广义线性模型,在6.3节再介绍线性模型和广义线性模型中的变量选择.本章最后 ...

  • 稀疏优化算法综述

    转载自 http://cea.ceaj.org/CN/abstract/abstract31975.shtml 摘 要:压缩感知是近年来发展起来的关于信息获取与处理的全新理论框架.主要介绍压缩感知的基 ...

  • 人工智能科普|初学者如何规划机器学习的路径?

    书山有路勤为径,在学习进修的道路上,正确的路径比埋头勤奋要重要的多. 最近两年AI在线学习和教育呈喷涌式发展,机器学习的培训课程也是层出不穷,专业的教育和课程固然重要,但在这个过程中最关键的是如何规划 ...

  • 免费Python机器学习课程一:线性回归算法

    学习线性回归的概念并从头开始在python中开发完整的线性回归算法 最基本的机器学习算法必须是具有单个变量的线性回归算法.如今,可用的高级机器学习算法,库和技术如此之多,以至于线性回归似乎并不重要.但 ...

  • Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例

    原文链接:http://tecdat.cn/?p=23178 回归算法最小角回归(LARS)通过高维数据的线性组合提供变量.它与正向逐步回归有关.在这种方法中,在每个步骤中选择最相关的变量,其方向在两 ...

  • 立体几何中的最小角和最大角定理

    上期立体几何中折叠体中出现了最下角定理和二面角的最大性定理,后台有留言问及这两个定理,今天对这两个定理做一次简要说明. 与这两个定理有关的题目常见于空间中角的比较,例如浙江省曾经连续三年考到了类似的题 ...

  • Python 中组合分类和回归的神经网络模型

    某些预测问题需要为同一输入预测数字值和类别标签.一种简单的方法是在同一数据上开发回归和分类预测模型,然后依次使用这些模型.另一种通常更有效的方法是开发单个神经网络模型,该模型可以根据同一输入预测数字和 ...

  • Python 中的函数装饰器和闭包

    函数装饰器可以被用于增强方法的某些行为,如果想自己实现装饰器,则必须了解闭包的概念. 装饰器的基本概念 装饰器是一个可调用对象,它的参数是另一个函数,称为被装饰函数.装饰器可以修改这个函数再将其返回, ...

  • Python中tuple和list的区别?基础学习!

    想必大家都知道,Python数据类型有很多种,其中有两个对象的写法非常相似,它就是tuple元组和list列表,让人傻傻分不清楚.那么你知道Python中tuple和list有什么区别吗?我们来看看具 ...

  • Python中缩进是什么?入门分享!

    众所周知,Python是一门独特的编程语言,它语法清晰.简单易学,而且Python是通过缩进来识别代码块的,因为一般的语言都是通过{}或者end来作为代码块标记. Python中缩进是什么? 要求严格 ...

  • python中的内置函数

    前言 本人只在csdn写博客 内置函数 介绍 一. 数学运算 abs()求绝对值函数 round() 近似取值 pow()求指数 divmod()求商和余数 max()求最大值和min()求最小值 s ...

  • 【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象 本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做 ...