LASSO回归

LASSO回归
⾸先思考⼀个问题:正则化为什么可以防⽌过拟合?带着这个问题看下⾯的内容(第2部分⼤致能感性地回答这个问题)。
本⽂有些部分参考了这篇博客:
1、概念
L0正则化的值是模型参数中⾮零参数的个数。
L1正则化表⽰各个参数绝对值之和。
电视电话会议系统L2正则化标识各个参数的平⽅的和。
2、参数稀疏化
2-1  实现参数的稀疏有什么好处吗?
现实中,对于回归真正有意义的变量往往是⽐较少的,这也是LASSO流派的世界观——“稀疏性假设”。另外根据“奥卡姆剃⼑原则”,越简单的模型越可靠。或者说,由于噪⾳的存在,选择“⽆关变量”甚⾄可以福克斯熄火门
强⾏拟合噪⾳部分,从⽽产⽣过拟合,但对于测试数据来说,这是不利的。另外,变量越少模型越容易解释(模型的可解释性是很重要的)。
2-2参数值越⼩代表模型越简单吗?
是的。为什么参数越⼩,说明模型越简单呢,这是因为越复杂的模型,越是会尝试对所有的样本进⾏拟合,甚⾄包括⼀些异常样本点,这就容易造成在较⼩的区间⾥预测值产⽣较⼤的波动,这种较⼤的波动也反映了在这个区间⾥的导数很⼤,⽽只有较⼤的参数值才能产⽣较⼤的导数。因此复杂的模型,其参数值会⽐较⼤。
3、正则化
3-1  L0正则化
根据上⾯的讨论,稀疏的参数可以防⽌过拟合,因此⽤L0范数(⾮零参数的个数)来做正则化项是可以防⽌过拟合的。
从直观上看,利⽤⾮零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,具体操作时选择参数⾮零的特征即可。但因为L0正则化很难求解,是个NP难问题,因此⼀般采⽤L1正则化。L1正则化是L0正则化的最优凸近似,⽐L0容易求解,并且也可以实现稀疏的效果。
3-2  L1正则化
L1正则化在实际中往往替代L0正则化,来防⽌过拟合。在江湖中也⼈称LASSO。
L1正则化之所以可以防⽌过拟合,是因为L1范数就是各个参数的绝对值相加得到的,我们前⾯讨论了,参数值⼤⼩和模型复杂度是成正⽐的。因此复杂的模型,其L1范数就⼤,最终导致损失函数就⼤,说明这个模型就不够好。
3-3  L2正则化
L2正则化可以防⽌过拟合的原因和L1正则化⼀样,只是形式不太⼀样。
L2范数是各参数的平⽅和再求平⽅根,我们让L2范数的正则项最⼩,可以使W的每个元素都很⼩,都接近于0。但与L1范数不⼀样的是,它不会是每个元素为0,⽽只是接近于0。越⼩的参数说明模型越简单,越简单的模型越不容易产⽣过拟合现象。
L2正则化江湖⼈称Ridge,也称“岭回归”
4、LASSO与Ridge回归
⽹上有很多介绍这个的,这⾥不再赘述。
这篇⽂章写得还⾏,参考⼀下对别人的尊称
分税制改革另外,可以看看博主发的多项式回归的知识
其他的⽐如:
5、LASSO的适⽤场景
LASSO是基于线性回归,适⽤于⼴义的线性回归,包括多项式回归、Logistic回归等。
创新之路 纪录片LASSO 虽然基于线性回归,但是可以和很多模型配合使⽤,如:⼆分类模型、⽣存模型。
⼆分类因变量的问题,直接⽤LASSO不太现实,所以可以LASSO+Logistic配合,⽤LASSO的降维特性配合Logistic的⼆分类拟合能⼒。
⽣存模型,直接⽤LASSO也实现不了,所以可以LASSO+Cox⽐例风险模型,⽤LASSO的降维特性+Cox的⽣存分析能⼒。
LASSO+LR在这篇⽂章中提到过:
LASSO+Cox在今年7⽉份的⼀篇胃癌基因组学⽂献中看到过。
有个问题,带L1惩罚项的Logistic 与LASSO+Logistic模型,这⼆者有什么区别?
关于这种组合的,还有PLSR+Cox的组合,有空也研究下。
如果把 LASSO 的定义等价于 L1正则化的话,那么其实很多⾮线性模型也⽤到了LASSO(L1正则化)的策略,这是普遍适⽤的技巧。如:神经⽹络中也经常使⽤正则化来防⽌过拟合、SVM 的⽬标函数中也有正则化项(虽然为L2正则化)。机器学习模型的⽬标函数常常由损失函数和正则化项⼀起构成,我们需要调整⼆者的权重,来使⾃⼰的模型同时兼备较好的拟合性能和泛化潜⼒。这部分思想可以参
考: 中的“优化⽬标”部分。
思考:SVM⼀般带 L2惩罚项,如果改为L1惩罚项,是不是可以称为LASSO+SVM?
另外关于回归与分类,知乎上有⼈对⼆者的联系做过这样的探讨,可以看看:
6、LASSO的⼯具包
python⾥可以⽤sklearn⾥的linear_model.Lasso,R语⾔可以使⽤glmnet包或lars包。
另外,sklearn⾥的linear_model.LogisticRegression 中,可以设置 "penalty=l1",这是否等价于 LASSO+Logistic ?
LASSO+Logistic模型的实现在R中很简单,cv.glmnet()的参数中,family为"gaussian"时为线性回归(因变量为连续变量)、为"binomial"时为Logistic回归(因变量为⼆分类变量)。
PLSR+Cox的组合:plsRcox是plsr和cox组合的⼯具。
7、变量筛选
有⼈这样总结变量选择:
1)⼦集选择 这是传统的⽅法,包括逐步回归和最优⼦集法等,对可能的部分⼦集拟合线性模型,利⽤判别准则 (如AIC,BIC,Cp,调整R2等)决定最优的模型
2)收缩⽅法(shrinkage method) 收缩⽅法⼜称为正则化(regularization)。主要是岭回归(ridge regression)和lasso回归。通过对最⼩⼆乘估计加⼊罚约束,使某些系数的估计为0。(岭回归:消除共线性;模的平⽅处理;Lasso回归:压缩变量,起降维作⽤;模处理)
(3)维数缩减 主成分回归(PCR)和偏最⼩⼆乘回归(PLS)的⽅法。把p个预测变量投影到m维空间(m<p),利⽤投影得到的不相关的组合建⽴线性模型。
这部分详细介绍可以参考:
8、R代码⽰例
library(glmnet)
x<-as.matrix(select.data)
清债x<-apply(x,2,as.numeric)
y<-up
cv.fit<-cv.glmnet(x, y, family="binomial", asure = "class") plot(cv.fit)
cv.fit$lambda.min
cv.fit$lambda.1se
fit<-glmnet(x, y, family="binomial")
plot(fit)
coefficients<-coef(fit,s=cv.fit$lambda.min) # or: cv.fit$lambda.1se Active.Index<-which(coefficients!=0)
以上为简易版的代码,具体任务可根据实际需求灵活调整。参考资料:

本文发布于:2024-09-22 07:35:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/53836.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模型   正则   回归   参数   拟合
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议