快好知 kuaihz

r语言中对LASSO,Ridge岭回归和Elastic Net...

原文链接:http://tecdat.cn/?p=3795

介绍

Glmnet是一个通过惩罚最大似然来拟合广义线性模型的包。正则化路径是针对正则化参数λ的值网格处的套索或弹性网络罚值计算的。该算法速度极快,可以利用输入矩阵中的稀疏性x。它符合线性,逻辑和多项式,泊松和Cox回归模型。可以从拟合模型中做出各种预测。它也可以适合多响应线性回归。

glmnet算法采用循环坐标下降法,它连续优化每个参数上的目标函数并与其他参数固定,并反复循环直至收敛。该软件包还利用强大的规则来有效地限制活动集。由于高效的更新和技术,如热启动和主动集合收敛,我们的算法可以非常快地计算解决方案路径。

该代码可以处理稀疏的输入矩阵格式,以及系数的范围约束。其核心glmnet是一组Fortran子程序,它们使执行速度非常快。

该软件包还包括用于预测和绘图的方法以及执行K倍交叉验证的功能。

首先,我们加载glmnet包:

library(glmnet)

## Loading required package: Matrix## Loaded glmnet 1.9-9

包中使用的默认模型是高斯线性模型或“最小二乘”,我们将在本节中演示。我们加载一组预先创建的数据用于说明。用户可以加载自己的数据,也可以使用保存在工作区中的数据。

load("QuickStartExample.RData")

该命令从该保存的R数据档案中加载输入矩阵x和响应向量y。

我们使用最基本的呼叫来适应模型glmnet。

fit=glmnet(x,y)

“适合”是类的一个对象,glmnet它包含拟合模型的所有相关信息以供进一步使用。我们不鼓励用户直接提取组件。相反,提供对象,如各种方法plot,print,coef和predict,使我们能够更优雅执行这些任务。

我们可以通过执行plot函数来显示系数:

MSE在测试集上

我们看到lasso(alpha=1)在这里做的最好。我们也看到,使用的lambda的范围与alpha不同。

系数上限和下限

这些是最近添加的增强模型范围的功能。假设我们想要拟合我们的模型,但将系数限制为大于-0.7且小于0.5。这是很容易通过实现upper.limits和lower.limits参数:

惩罚因素

该参数允许用户对每个系数应用单独的惩罚因子。其每个参数的默认值为1,但可以指定其他值。特别是,任何penalty.factor等于零的变量都不会受到惩罚!让[ 数学处理错误]vĴ表示[ 数学处理错误]的惩罚因子Ĵ变量。罚款期限变为[ 数学处理错误] 请注意,惩罚因子在内部重新调整为与nvars相加。

当人们对变量有先验知识或偏好时,这非常有用。在很多情况下,一些变量可能非常重要,以至于一直想要保持这些变量,这可以通过将相应的惩罚因子设置为0来实现:

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:回归  回归词条  Elastic  Elastic词条  语言  语言词条  LASSO  LASSO词条  Ridge  Ridge词条  
综合

 两个账号之间百度网盘整理的技巧

趁着在家的日子,把百度网盘的资料做了一个大整理。一个号之间的整理还好,就不停地移动文件就好了。但是两个号之间的文件怎么合并整理呢?最近,百度网盘有推出一个功能就...(展开)

综合

 图形化编程娱乐于教,Kitten...

图形化编程娱乐于教,Kittenblock实例,甲虫画出蜈蚣效果跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一...(展开)

综合

 录课小软件:天天录课

今天我们继续给大家介绍微课类软件,今天的这个软件更小,我们称之为小军刀——天天录课,录制剪辑降噪的功能都有,而且生成视频快,画质也是可以的。一、首先下载安装包,...(展开)