服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

香港云服务器
服务器之家 - 编程语言 - R语言 - R语言实现LASSO回归的方法

R语言实现LASSO回归的方法

2021-12-28 17:06R_qun R语言

这篇文章主要介绍了R语言实现LASSO回归的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Lasso回归又称为套索回归,是Robert Tibshirani于1996年提出的一种新的变量选择技术。Lasso是一种收缩估计方法,其基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0的回归系数,进一步得到可以解释的模型。R语言中有多个包可以实现Lasso回归,这里使用lars包实现。

 

1.利用lars函数实现lasso回归并可视化显示

x = as.matrix(data5[, 2:7]) #data5为自己的数据集
y = as.matrix(data5[, 1])
lar1 <-lars(x,y,type = "lasso")
lar1 #查看得到的结果

R语言实现LASSO回归的方法

从图1可以看出通过lasso回归得到的R^2为0.426,较低。标红的部分是在进行lasso回归时,自变量被选入的顺序。下面用图表的形式显示。

plot(lar1) 

R语言实现LASSO回归的方法

可以看到图2中的竖线对应于lasso中迭代的次数,对应的系数值不为0的自变量即为选入的,竖线的标号与图1中的step相对应。

 

2.选取cp值最小时对应的模型. 获取模型对应系数

对于选取最小cp值对应的模型可以通过两种方式实现:
(1)显示所有cp值,从中挑选最小的

summary(lar1) #输出lasso对象的细节,包括Df、RSS和Cp,其中Cp是MallowsCp统计量,通常选取Cp最小的那个模型

R语言实现LASSO回归的方法

图3显示了lasso回归中所有的cp值,选择最小的,即上图标红的部分,对应的df=3,最前面一列对应迭代次数(即步数),step=2 。

(2)直接选取最小的cp值

lar1$Cp[which.min(lar$Cp)] #选择最小Cp,结果如下:

R语言实现LASSO回归的方法

与图3中标红的部分结果一样,但是要注意,2表示的是step大小。

 

3.选取cp值最小时对应的模型系数

(1)获取所有迭代系数,根据step大小选择cp值最小对应的自变量系数值

lar1$beta #可以得到每一步对应的自变量对应的系数

R语言实现LASSO回归的方法

图4标红的部分就是step=2对应的cp值最小时对应的模型的自变量的系数

(2)获取指定迭代次数(即步数)对应的自变量的系数,可以通过下面的代码实现:

coef <-coef.lars(lar,mode="step",s=3) #s为step+1,也比图2中竖线为2的迭代次数对应,与图3中df值相等;s取值范围1-7.
coef[coef!=0] #获取系数值不为零的自变量对应的系数值

R语言实现LASSO回归的方法

与图4中标红部分一样。

 

4.获取截距的系数

通过第4部分可以获取cp值最小时对应的自变量的系数,但是没有办法获取对应模型的截距值,下面的代码可以获取对应模型的截距值。

上面的代码就是求取cp值最小时对应的模型的截距值,结果如下:

R语言实现LASSO回归的方法

 

总结:

通过上面的4步可以利用R语言实现Lasso回归,并可以获取模型相应的系数和截距值。

到此这篇关于R语言实现LASSO回归的方法的文章就介绍到这了,更多相关R语言LASSO回归内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_38650208/article/details/88766738

延伸 · 阅读

精彩推荐
  • R语言R语言实现支持向量机SVM应用案例

    R语言实现支持向量机SVM应用案例

    本文主要介绍了R语言实现支持向量机SVM应用案例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    一天_pika5222022-01-18
  • R语言R语言gsub替换字符工具的具体使用

    R语言gsub替换字符工具的具体使用

    这篇文章主要介绍了R语言gsub替换字符工具的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    lztttao10372021-12-24
  • R语言R语言中的vector(向量),array(数组)使用总结

    R语言中的vector(向量),array(数组)使用总结

    这篇文章主要介绍了R语言中的vector(向量),array(数组)使用总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    A叶子叶来5772021-11-14
  • R语言R语言中qplot()函数的用法说明

    R语言中qplot()函数的用法说明

    这篇文章主要介绍了R语言中qplot()函数的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Jack_丁明12752022-01-05
  • R语言基于R/RStudio中安装包“无法与服务器建立连接”的解决方案

    基于R/RStudio中安装包“无法与服务器建立连接”的解决方案

    这篇文章主要介绍了基于R/RStudio中安装包“无法与服务器建立连接”的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    truffle52815052022-01-05
  • R语言R语言常量知识点总结

    R语言常量知识点总结

    在本篇文章里小编给大家整理了一篇关于R语言常量知识点总结内容,有兴趣的朋友们可以学习分享下。...

    R语言教程网12102021-12-29
  • R语言R语言读取xls与xlsx格式文件过程

    R语言读取xls与xlsx格式文件过程

    这篇文章主要为大家介绍了使用R语言读取xls与xlsx格式文件的过程步骤,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪...

    Kanny广小隶11982022-01-20
  • R语言如何用R语言绘制散点图

    如何用R语言绘制散点图

    这篇文章主要介绍了如何用R语言绘制散点图,帮助大家更好的理解和学习使用R语言,感兴趣的朋友可以了解下...

    菜鸟教程13002021-12-23
1225