r语言-岭回归及lasso算法(代码片段)

ye20190812 ye20190812     2022-12-11     534

关键词:

前文我们讲到线性回归建模会有共线性的问题,岭回归和lasso算法都能一定程度上消除共线性问题。

岭回归

> #########正则化方法消除共线性
> ###岭回归
> ###glmnet只能处理矩阵
> library(glmnet)
> library(mice)
> creditcard_exp<-creditcard_exp[complete.cases(creditcard_exp),]
> x<-as.matrix(creditcard_exp[,c(6,7,10,11)])
> y<-as.matrix(creditcard_exp[,3])
> #看一下岭脊图
> r1<-glmnet(x=x,y=y,family = "gaussian",alpha = 0)#alpha = 0表示岭回归,x,y不能有缺失值             
> plot(r1,xvar="lambda")

技术图片

 

 

 

> r1cv<-cv.glmnet(x=x,y=y,family="gaussian",alpha=0,nfolds = 10)#用交叉验证得到lambda
> plot(r1cv)

 

技术图片

 

 

> rimin<-glmnet(x=x,y=y,family = "gaussian",alpha = 0,lambda = r1cv$lambda.min)#取误差平方和最小时的λ
> coef(rimin)
5 x 1 sparse Matrix of class "dgCMatrix"
                         s0
(Intercept)     106.5467017
Age               0.9156047
Income           19.6903291
dist_home_val     1.7357213
dist_avg_income  71.5765458

我们可以看到这次模型的收入和支出是正相关了。

 

lasso算法

#####Lasson算法:有变量筛选功效
r1l<-cv.glmnet(x=x,y=y,family="gaussian",alpha=1,nfolds = 10)
plot(r1l)

技术图片

 

> r1l1<-glmnet(x=x,y=y,family = "gaussian",alpha = 1,lambda = r1l$lambda.min)#取λ最小值看建模情况
> coef(r1l1)
5 x 1 sparse Matrix of class "dgCMatrix"
                         s0
(Intercept)      -27.169039
Age                1.314711
Income          -160.195837
dist_home_val      1.538823
dist_avg_income  255.395751

看模型数据,我们得知并没有解决income为负相关的情况,而且并没有筛选变量,那么我们尝试取lambda.1se*0.5的值

> r1l2<-glmnet(x=x,y=y,family = "gaussian",alpha = 1,lambda = r1l$lambda.1se*0.5)#0.5倍标准误差的λ
> coef(r1l2)
5 x 1 sparse Matrix of class "dgCMatrix"
                         s0
(Intercept)     267.0510318
Age               .        
Income            .        
dist_home_val     0.6249539
dist_avg_income  83.6952253

看结果,可知把一些变量删去了,消除共线性的问题,接下来我们看看lambda.1se的值

1 > r1l3<-glmnet(x=x,y=y,alpha = 1,family = "gaussian",lambda = r1l$lambda.1se)
2 > coef(r1l3)
3 5 x 1 sparse Matrix of class "dgCMatrix"
4                        s0
5 (Intercept)     432.00684
6 Age               .      
7 Income            .      
8 dist_home_val     .      
9 dist_avg_income  68.90894

这次结果只留了一个变量,由此可知当lambda越大,变量保留的越少,一般我们在误差最小和一倍标准差内选择合适的λ。

 

岭回归与lasso回归算法(代码片段)

模型压缩与正则化主要包含岭回归(Ridgeregression)和Lasso两种方法,二者的主要原理是将系数往等于0的方向压缩。岭回归lasso全称:Leastabsoluteshrinkageandselectionoperator最小绝对缩减和选择算子一、岭回归示例使用信... 查看详情

拓端tecdat|r语言bootstrap的岭回归和自适应lasso回归可视化(代码片段)

原文链接:http://tecdat.cn/?p=22921原文出处:拓端数据部落公众号拟合岭回归和LASSO回归,解释系数,并对其在λ范围内的变化做一个直观的可视化。 #加载CBI数据 #子集所需的变量(又称,列) CBI_sub<-CBI   #... 查看详情

用python实现岭回归算法与lasso回归算法并处理iris数据集(代码片段)

在介绍岭回归算法与Lasso回归算法之前,先要回顾一下线性回归算法。根据线性回归模型的参数估计公式可知可知,得到的前提是矩阵可逆。换句话说就是样本各个特征(自变量)之间线性无关。然而在实际问题中,常常会出现... 查看详情

机器学习sklearn(77):算法实例(三十四)回归线性回归大家族多重共线性:岭回归与lasso岭回归(代码片段)

1最熟悉的陌生人:多重共线性逆矩阵存在的充分必要条件 行列式不为0的充分必要条件              矩阵满秩的充分必要条件           查看详情

机器学习之线性回归岭回归lasso回归(代码片段)

1、回归算法分类算法的目标值是标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归。2、线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理... 查看详情

机器学习sklearn(78):算法实例(三十五)回归线性回归大家族多重共线性:岭回归与lassolasso(代码片段)

3Lasso3.1Lasso与多重共线性      3.2Lasso的核心作用:特征选择  importnumpyasnpimportpandasaspdfromsklearn.linear_modelimportRidge,LinearRegression,Lassofromsklearn.model_selecti 查看详情

弹性网惩罚项的可视化分析(r语言)(代码片段)

...0引言在博客《变量选择——lasso、SCAD、MCP的实现(R语言》中介绍了R语言做变量选择常用的函数和包,其中msaenet和glmnet是做的弹性网,弹性网是岭回归和lasso类惩罚的回归。下面以二维为例,介绍岭回归、lasso、... 查看详情

弹性网惩罚项的可视化分析(r语言)(代码片段)

...0引言在博客《变量选择——lasso、SCAD、MCP的实现(R语言》中介绍了R语言做变量选择常用的函数和包,其中msaenet和glmnet是做的弹性网,弹性网是岭回归和lasso类惩罚的回归。下面以二维为例,介绍岭回归、lasso、... 查看详情

岭回归与lasso回归

线性回归的一般形式过拟合问题及其解决方法问题:以下面一张图片展示过拟合问题解决方法:(1):丢弃一些对我们最终预测结果影响不大的特征,具体哪些特征需要丢弃可以通过PCA算法来实现;(2):使用正则化技术,保留所有... 查看详情

线性回归scikit-learnlinearregression最小二乘法梯度下降sdg多项式回归学习曲线岭回归lasso回归(代码片段)

github:https://github.com/gaowanlu/MachineLearning-DeepLearning线性回归scikit-learn关键词:LinearRegression、最小二乘法、梯度下降、SDG、多项式回归、学习曲线、岭回归、Lasso回归LinearRegression#使用scikit-learn中的线性回归模型fromoperatorimpor 查看详情

机器学习岭回归和lasso回归详解以及相关计算实例-加利福尼亚的房价数据集红酒数据集(代码片段)

一,岭回归和LASSO回归1.1多重共线性处理多重共线性最直接的方法是手动移除共线性的变量:即先对数据进行相关分析,若两个特征的相关系数大于某特定值(一般为0.7),则手动移除其中一个特征,再继续做回归分析。这种做法... 查看详情

r语言glmnet拟合岭回归模型实战:岭回归模型的模型系数(ridgeregressioncoefficients)及可视化岭回归模型分类评估计算(混淆矩阵accuracydeviance)

R语言glmnet拟合岭回归模型(ridgeregression)实战:岭回归模型的模型系数(ridgeregressioncoefficients)及可视化、岭回归模型分类评估计算(混淆矩阵、accuracy、偏差Deviance)目录 查看详情

r语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数及可视化lasso回归模型分类评估计算(混淆矩阵accuracydeviance)

R语言glmnet拟合lasso回归模型实战:lasso回归模型的模型系数(lassoregressioncoefficients)及可视化、lasso回归模型分类评估计算(混淆矩阵、accuracy、Deviance)目录 查看详情

岭回归和lasso回归(转)

回归和分类是机器学习算法所要解决的两个主要问题。分类大家都知道,模型的输出值是离散值,对应着相应的类别,通常的简单分类问题模型输出值是二值的,也就是二分类问题。但是回归就稍微复杂一些,回归模型的输出值... 查看详情

机器学习-正则化(岭回归lasso)和前向逐步回归(代码片段)

机器学习-正则化(岭回归、lasso)和前向逐步回归本文代码均来自于《机器学习实战》这三种要处理的是同样的问题,也就是数据的特征数量大于样本数量的情况。这个时候会出现矩阵不可逆的情况,为什么呢?矩阵可逆的条件... 查看详情

线性回归——lasso回归和岭回归(ridgeregression)

目录线性回归——最小二乘Lasso回归和岭回归为什么lasso更容易使部分权重变为0而ridge不行?References线性回归很简单,用线性函数拟合数据,用meansquareerror(mse)计算损失(cost),然后用梯度下降法找到一组使mse最小的权重。lasso... 查看详情

吴裕雄数据挖掘与分析案例实战——岭回归与lasso回归模型

#导入第三方模块importpandasaspdimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportmodel_selectionfromsklearn.linear_modelimportRidge,RidgeCV#读取糖尿病数据集diabetes=pd.read_excel(r‘F:\python_Data_analysis 查看详情

r语言入门——cv岭参数的选择(代码片段)

...估计函数1.3岭估计CV预测精度1.4优化调用2、总结0引言《R语言入门——多元回归交叉验证的实现》中介绍了使用交叉验证的思想使用RMSE衡量一个模型的预测精度,本文使用同样的思想确定岭回归的岭参数。具体的估计如下:β^... 查看详情