glmnet是由斯坦福大学的统计学家们开发的一款R包,用于在传统的广义线性回归模型的基础上添加正则项,以有效解决过拟合的问题,支持线性回归,逻辑回归,泊松回归,cox回归等
glmnet是由斯坦福大学的统计学家们开发的一款R包,用于在传统的广义线性回归模型的基础上添加正则项,以有效解决过拟合的问题,支持线性回归,逻辑回归,泊松回归,cox回归等多种回归模型,链接如下
https://cran.r-project.org/web/packages/glmnet/index.html
对于正则化,提供了以下3种正则化的方式
这3者的区别就在于正则化的不同,套索回归使用回归系数的绝对值之和作为正则项,即L1范式;岭回归采用的是回归系数的平方和,即L2范式;弹性网络回归同时采用了以上两种策略,其正则项示意如下
可以看到,加号左边对应的是lasso回归的正则项,加号右边对应的是ridge回归的正则项。在glmnet中,引入一个新的变量α, 来表示以上公式
可以看到,随着α取值的变化,正则项的公式也随之变化
利用alpha的取值来确定回归分析的类型,然后就只需要关注lambda值就可以了。除此之外,还有一个关键的参数family, 用来表示回归模型的类型,其实就是因变量y的数据分布,有以下几种取值
理解这两个参数之后,就可以使用这个R包来进行分析了。以线性回归模型的的lasso分析为例,代码如下
上述代码以swiss这个数据集为例,构建了一个多元线性回归模型,而且抽取了50%的数据作为训练集,剩下的50%作为测试集,准备好数据集之后,就可以进行分析了
glmnet支持岭回归,套索回归,弹性网络回归3种正则化的回归分析,功能十分强大,更多细节请参考官方文档。
·end·
生物信息入门
只差这一个
公众号