最小角回归 LARS算法包的用法以及模型参数的选择

Lasso回归模型,是常用线性回归的模型,当模型维度较高时,Lasso算法通过求解稀疏解对模型进行变量选择。Lars算法则提供了一种快速求解该模型的方法。Lars算法的基本原理有许多其他文章可以参考,这里不过多赘述, 这里主要简介如何在R中利用lars算法包求解线性回归问题以及参数的选择方法。

以下的的一些用法参照lars包的帮助文件,再加上自己的使用心得。所用的示例数据diabetes是Efron在其论文中“Least Angle Regression”中用到的,可以在加载lars包后直接获得

[html] view plain copy
library(lars)
data(diabetes)
attach(diabetes)
该数据中含有三个变量x,x2,y, 其中x是一个有422X10维的矩阵,y是一422维个向量 ,x2是由x得到的 422X64维矩阵(compressive).

  1. 求解路径solution path

lars(x, y, type = c("lasso", "lar", "forward.stagewise", "stepwise"), trace = FALSE, normalize = TRUE, intercept = TRUE, Gram, eps = .Machine$double.eps, max.steps, use.Gram = TRUE)

该函数提供了通过回归变量x和因变量y求解其回归解路径的功能。其中,

type ---- 表示所使用的回归方法,包括(lasso, lar, forward.stagewise, stepwise),选择不同的回归方法将得到不同的解路径;

normalize ---- 表示是否对变量进行归一化,当为TRUE时,程序将对x和y进行L2正则化;

intercept ---- 表示是否对变量进行中心化,当为TRUE时,程序将对x和y分别减去其均值。

原文地址:http://blog.51cto.com/jackxlee/2097642

时间: 2024-10-13 19:30:02

最小角回归 LARS算法包的用法以及模型参数的选择的相关文章

从最小角回归(LARS)中学到的一个小知识(很短)

[转载请注明出处]http://www.cnblogs.com/mashiqi 假设这里有一组向量$\left\{ x_i \right\}_{i=1}^n$和一个待投影的向量$u$.假设$u$和每个$x_i$的内积都为正数,也就是说$u$和每个$x_i$的夹角都小于90度.那么当我们把$u$投影到$\left\{ x_i \right\}_{i=1}^n$上时,理所应当地每个$x_i$的系数$\beta_i$也都应该大于零:$$u = x_1\beta_1+\cdots+x_n\beta_n,

机器学习方法:回归(三):最小角回归Least Angle Regression(LARS),forward stagewise selection

希望与志同道合的朋友一起交流,我刚刚设立了了一个技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面两篇回归(一)(二)复习了线性回归,以及L1与L2正则--lasso和ridge regression.特别描述了lasso的稀疏性是如何产生的.在本篇中介绍一下和lasso可以产生差不多效果的两种feature selection的方法,forward stagewise selection和最小角回归least angle regression(LARS).尤其是

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

前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结.里面对线程回归的正则化也做了一个初步的介绍.提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归.但是对于Lasso回归的解法没有提及,本文是对该文的补充和扩展.以下都用矩阵法表示,如果对于矩阵分析不熟悉,推荐学习张贤达的<矩阵分析与应用>. 1. 回顾线性回归 首先我们简要回归下线性回归的一般形式: hθ(X)=Xθhθ(X)=Xθ 需要极小化的损失函数是: J(θ)=12(Xθ?Y)T(Xθ?Y

R中常用数据挖掘算法包

数据挖掘主要分为4类,即预测.分类.聚类和关联,根据不同的挖掘目的选择相应的算法.下面对R语言中常用的数据挖掘包做一个汇总: 连续因变量的预测: stats包 lm函数,实现多元线性回归 stats包 glm函数,实现广义线性回归 stats包 nls函数,实现非线性最小二乘回归 rpart包 rpart函数,基于CART算法的分类回归树模型 RWeka包 M5P函数,模型树算法,集线性回归和CART算法的优点 adabag包 bagging函数,基于rpart算法的集成算法 adabag包 b

深入学习高级非线性回归算法 --- 树回归系列算法

前言 前文讨论的回归算法都是全局且针对线性问题的回归,即使是其中的局部加权线性回归法,也有其弊端(具体请参考前文:) 采用全局模型会导致模型非常的臃肿,因为需要计算所有的样本点,而且现实生活中很多样本都有大量的特征信息. 另一方面,实际生活中更多的问题都是非线性问题. 针对这些问题,有了树回归系列算法. 回归树 在先前决策树 (链接) 的学习中,构建树是采用的 ID3 算法.在回归领域,该算法就有个问题,就是派生子树是按照所有可能值来进行派生. 因此 ID3 算法无法处理连续性数据. 故可使用二

逻辑回归分类算法

逻辑回归由于其简单.高效.可解释性强的特点,在实际用途中十分的广泛:从购物预测到用户营销响应,从流失分析到信用评价,都能看到其活跃的身影.可以说逻辑回归占据了分类算法中非常重要的地位. 逻辑回归:logistic regression,LR.模型公式是Logistic函数,也叫Sigmoid函数.图像形如S型曲线.它可以将实数映射到[0,1]区间用来做二分类.一般选择0.5作为阀值,大于阀值的归为类1,小于阀值的归为类0.公式(Y为决策值,x为特征值,e为自然对数): 如果希望对正例样本有更高的

Apache Spark源码走读之21 -- 浅谈mllib中线性回归的算法实现

欢迎转载,转载请注明出处,徽沪一郎. 概要 本文简要描述线性回归算法在Spark MLLib中的具体实现,涉及线性回归算法本身及线性回归并行处理的理论基础,然后对代码实现部分进行走读. 线性回归模型 机器学习算法是的主要目的是找到最能够对数据做出合理解释的模型,这个模型是假设函数,一步步的推导基本遵循这样的思路 假设函数 为了找到最好的假设函数,需要找到合理的评估标准,一般来说使用损失函数来做为评估标准 根据损失函数推出目标函数 现在问题转换成为如何找到目标函数的最优解,也就是目标函数的最优化

Lineage逻辑回归分类算法

Lineage逻辑回归分类算法 1.概述 Lineage逻辑回归是一种简单而又效果不错的分类算法 什么是回归:比如说我们有两类数据,各有50十个点组成,当我门把这些点画出来,会有一条线区分这两组数据,我们拟合出这个曲线(因为很有可能是非线性),就是回归.我们通过大量的数据找出这条线,并拟合出这条线的表达式,再有新数据,我们就以这条线为区分来实现分类. 下图是一个数据集的两组数据,中间有一条区分两组数据的线. 显然,只有这种线性可分的数据分布才适合用线性逻辑回归  2.算法思想 Lineage回归

图的全局最小割的Stoer-Wagner算法及例题

Stoer-Wagner算法基本思想:如果能求出图中某两个顶点之间的最小割,更新答案后合并这两个顶点继续求最小割,到最后就得到答案. 算法步骤: ------------------------------------------------------------------------------------------------------------------------- (1)首先初始化,设最小割ans = INF