R语言实现LASSO回归

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

大家好,又见面了,我是你们的朋友全栈君。

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 #查看得到的结果

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

plot(lar1) 

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

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

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

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

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

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

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

在这里插入图片描述
与图3中标红的部分结果一样,但是要注意,2表示的是step大小。

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

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

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

在这里插入图片描述
图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] #获取系数值不为零的自变量对应的系数值

在这里插入图片描述
与图4中标红部分一样。

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

predict(lar1,data.frame(SHDI=0,MIDU=0,LSI=0,CONTAF=0,MPS=0,PD=0),s=3) #s的含义和第4部分求取coef中的s相同,代表第几次迭代对应的模型的截距值。且data.frame中自变量的数量和数据框中进行lasso拟合的自变量数目相同,都要写上。

上面的代码就是求取cp值最小时对应的模型的截距值,结果如下:
在这里插入图片描述
总结:
通过上面的4步可以利用R语言实现Lasso回归,并可以获取模型相应的系数和截距值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131929.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月11日 下午5:00
下一篇 2022年6月11日 下午5:00


相关推荐

  • 接口是什么?什么是接口?

    接口是什么?什么是接口?什么是接口 1 什么是接口 接口一般来讲分为两种 1 程序内部的接口 方法与方法 模块与模块之间的交互 程序内部抛出的接口 如登录发帖 发帖就必须要登录 如果不登录不能发帖 发帖和登录这两个模块之间就要有交互 就会抛出一个接口 进行内部系统调用 2 系统对外的接口 从别人的网站或服务器上获取资源或信息 对方不会提供数据库共享 只能提供一个写好的方法来获取数据 如购物网站和第三方支付

    2026年3月17日
    2
  • Cursor+BlenderMCP+Blender(windows系统)用AI进行3D建模教程

    Cursor+BlenderMCP+Blender(windows系统)用AI进行3D建模教程

    2026年3月16日
    3
  • 两位数乘法的速算方法(一)「建议收藏」

    两位数乘法的速算方法(一)「建议收藏」两位数乘法的速算方法一、范围讲的是两位自然数的相乘,即如何计算ABXCD的相乘结果,例如86X32。 二、ABXCD相乘的专业说法AB叫被乘数CD叫乘数三、原理设两位数分别是10A+B,10C+D,其乘积为S,根据多项式展开:S=(10A+B)X(10C+D)=10Ax10C+BX10C+10AXD+BXD。所谓速算,就是根据其中一些相等或者互补的关系,简化

    2022年6月7日
    63
  • LZW压缩算法

    LZW压缩算法1 LZW 压缩适用的场景 nbsp nbsp nbsp 对于有大量重复出现的字符或者字符串 可以将重复出现的多个串用一个字符表示 并写进文件 比如可以压缩这个字符串 TOBEORNOTTOB 这个字符串中出现了大量的 TO BE OR NOT 等等字符 我们就可以将这些重复出现的字符压缩写进文件 这里只是说明算法 并没有涉及写进文件的操作 2 压缩和解压缩的原理 1 压缩 这

    2026年3月17日
    1
  • 照片生成STL浮雕文件视频演示,图片转灰度图,灰度图转STL浮雕图

    照片生成STL浮雕文件视频演示,图片转灰度图,灰度图转STL浮雕图图片转成STL浮雕图视频教程,照片转成灰度图转STL文件操作演示把彩色照片转成STL浮雕图视频教程,照片转成灰度图操作演示,把手机拍的照片转成浮雕图效果示例,照片转成灰度图效果示例,彩色照片转成浮雕图视频讲解演示。知识就是财富,照片生成浮雕图不用求人转图了,自己想动手转图的乐趣。更多搜索词:一个灰度图图片怎么转化为stl文件?彩色的图片如何转成STL浮雕图?日常照片转化成STL浮雕图,机雕,木雕等的STL文件?关于图片格式转换的图片转灰度图,灰度图转浮雕图本文视频

    2022年6月20日
    43
  • 解决pycharm新建项目后按钮灰色问题

    解决pycharm新建项目后按钮灰色问题解决pycharm新建项目后按钮灰色问题出现过多次该问题了,在此记录一下同样适用于导入别人的新项目后无法运行问题原因一:  pycharm没有设置系统解析器解决方法一:  打开pycharm->File->Settings->ProjectInterpreter->设置python路径(系统python)原因二:  没有创…

    2022年8月29日
    8

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号