R语言实现LASSO回归

article/2025/9/28 21:58:36

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回归,并可以获取模型相应的系数和截距值。


http://chatgpt.dhexx.cn/article/VIMrDXAT.shtml

相关文章

python-LASSO回归模型

https://zhuanlan.zhihu.com/p/76055830 LASSO回归模型的应用 ①可视化方法确定值 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib from sklearn import model_selection from sklearn.linear_model import Lasso, LassoCV font…

Lasso模型

Lasso是一种数据降维方法&#xff0c;该方法不仅适用于线性情况&#xff0c;也适用于非线性情况。Lasso是基于惩罚方法对样本数据进行变量选择&#xff0c;通过对原本的系数进行压缩&#xff0c;将原本很小的系数直接压缩至0&#xff0c;从而将这部分系数所对应的变量视为非显著…

Lasso算法理论介绍

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

Lasso回归系列二:Lasso回归/岭回归的原理

Lasso回归/岭回归的原理 在学习L1&#xff0c;L2正则化的作用和区别时&#xff0c;我们总是会看到这样的一副图片&#xff1a; 这幅图片形象化地解释了L1&#xff0c;L2对线性模型产生的不同的约束效果。 我最开始其实是不太理解为什么要这么画的。比如 1、L1范数(L1-norm)等…

回归问题-Lasso回归

Lasso(Least absolute shrinkage and selection operator)方法是以缩小变量集&#xff08;降阶&#xff09;为思想的压缩估计方法。它通过构造一个惩罚函数&#xff0c;可以将变量的系数进行压缩并使某些回归系数变为0&#xff0c;进而达到变量选择的目的。 正则化 正则化&am…

Lasso回归

维数灾难 高维数据 何谓高维数据&#xff1f;高维数据指数据的维度很高&#xff0c;甚至远大于样本量的个数。高维数据的明显的表现是&#xff1a;在空间中数据是非常稀疏的&#xff0c;与空间的维数相比样本量总是显得非常少。 在分析高维数据过程中碰到最大的问题就是维数…

1.1.3. Lasso(套索回归)

1.1.3. Lasso 一、简介 首先&#xff0c;Lasso同样是线性回归的一种变体。而文档中指出&#xff0c;它是一种能让参数 ω \omega ω稀疏的模型&#xff08;作用&#xff09;。它是压缩感知领域的基础&#xff08;地位&#xff09;&#xff0c;在特定情况下&#xff0c;它可以“…

【机器学习】Lasso模型

一、引言 1.1 高维数据 何谓高维数据&#xff1f;高维数据指数据的维度很高&#xff0c;甚至远大于样本量的个数。高维数据的明显的表现是&#xff1a;在空间中数据是非常稀疏的&#xff0c;与空间的维数相比样本量总是显得非常少。 在分析高维数据过程中碰到最大的问题就是维…

多元线性回归-Lasso

目录 1.Lasso与多重共线性 2. Lasso的核心作用&#xff1a;特征选择 3. 选取最佳的正则化参数取值 1.Lasso与多重共线性 Lasso全称最小绝对收缩和选择算子(Least absolute shrinkage and selection operator)&#xff0c;由于这个名称过于复杂所以简称为Lasso&#xff0c;和…

Lasso线性回归学习笔记(公式与代码实现)

目录 Lasso线性回归学习笔记&#xff08;公式与代码实现&#xff09;1 为什么要在线性回归中引入正则化项&#xff08;简介&#xff09;2 常见正则化项3 损失函数图像与正则化之后的图像3.1损失函数图像3.2 加了 L~1~ 正则项之后的损失函数图像 4 L~1~ 范数正则化的解中有更多零…

机器学习算法系列(五)- Lasso回归算法(Lasso Regression Algorithm)

阅读本文需要的背景知识点&#xff1a;线性回归算法、一丢丢编程知识 最近笔者做了一个基于人工智能实现音乐转谱和人声分离功能的在线应用——反谱&#xff08;Serocs&#xff09;&#xff0c;感兴趣的读者欢迎试用与分享&#xff0c;感谢您的支持&#xff01;serocs.cn 一、…

学习机器学习和深度学习的方法和步骤

学习机器学习和深度学习的方法和步骤 相信很多人都在找学习机器学习和深度学习的步骤和教程。作为过来人和大家一起交流一下。 我自己制作的一个思维导图希望对大家有帮助。

机器学习算法介绍

前言 谷歌董事长施密特曾说过&#xff1a;虽然谷歌的无人驾驶汽车和机器人受到了许多媒体关注&#xff0c;但是这家公司真正的未来在于机器学习&#xff0c;一种让计算机更聪明、更个性化的技术。 也许我们生活在人类历史上最关键的时期&#xff1a;从使用大型计算机&#xf…

机器学习之【提升方法】

机器学习【提升方法】 一、Adaboost的起源1.强可学习与弱可学习 二、怎样实现弱学习转为强学习1.怎样获得不同的弱分类器?BaggingBagging的弊端 2.怎样组合弱分类器? 三、Adaboost的提出四、Adaboost的基本概念五、Adaboost算法六、示例七、Boosting illustration 一、Adaboo…

(四)机器学习方法的分类

文章目录 一、监督学习二、非监督学习三、半监督学习四、增强学习五、机器学习的其他分类1. 批量学习&#xff08;Batch Learning&#xff09;2. 在线学习&#xff08;Online Learning&#xff09;3. 参数学习&#xff08;Parametric Learning&#xff09;4. 非参数学习 在上一…

【机器学习】之机器学习方法的分类

1&#xff0c;监督学习 给机器的训练数据拥有标记和答案 例如&#xff1a; 图像已经积累了标定信息银行已经积累了客户的信息和信用卡的信息 2&#xff0c;非监督学习 给机器的训练数据没有标记或答案 对没有标记的数据进行分类 – 聚类分析 对数据进行降维处理 特征提取…

机器学习常用方法

在本篇文章中&#xff0c;我将对机器学习做个概要的介绍。本文的目的是能让即便完全不了解机器学习的人也能了解机器学习&#xff0c;并且上手相关的实践。这篇文档也算是EasyPR开发的番外篇&#xff0c;从这里开始&#xff0c;必须对机器学习了解才能进一步介绍EasyPR的内核。…

机器学习的几种学习方式

根据数据类型的不同&#xff0c;对一个问题的建模有不同的方式&#xff0c;人们首先会考虑算法的学习方式。将算法按照学习方式分类可以让人们在建模和算法选择时&#xff0c;根据输入数据来选择最合适的算法&#xff0c;从而获得最好的结果。 在机器学习领域&#xff0c;有以…

机器学习--机器学习的基本方法

文章目录 1.1统计分析1.1.1 统计基础1.1.2 常见的概率分布2.1.3参数估计1.1.4 假设与检验1.1.5线性回归1.1.6逻辑回归1.1.7判别分析1.1.8 非线性判决 1.1统计分析 统计学是研究如何收集资料&#xff0c;整理资料和进行量化分析&#xff0c;判断的一门学科。在科学计算&#xf…

机器学习的四种学习方法

文章目录 监督学习&#xff08;Supervised Learning&#xff09;无监督学习&#xff08;Unsupervised Learning&#xff09;半监督学习&#xff08;Semi-supervised Learning)强化学习&#xff08;Reinforcement Learning)应用 监督学习&#xff08;Supervised Learning&#x…