系数路径–岭,套索和弹性净回归的比较


13

我想比较使用脊线,套索和弹性网选择的模型。下图显示了使用所有三种方法的系数路径:山脊(图A,alpha = 0),套索(图B; alpha = 1)和弹性网(图C; alpha = 0.5)。最佳解决方案取决于所选的lambda值,该值是基于交叉验证选择的。

岭(A,alpha = 0),套索(B,alpha = 1)和弹性网(C,alpha = 0.5)回归的系数曲线。 图顶部的数字代表模型的大小。最佳解决方案取决于所选的lambda值。 lambda的选择基于交叉验证。

查看这些图时,我希望弹性网(图C)表现出分组效应。然而,目前情况尚不清楚。套索和弹性网的系数路径非常相似。这可能是什么原因?这仅仅是编码错误吗?我在R中使用了以下代码:

library(glmnet)
X<- as.matrix(mydata[,2:22])
Y<- mydata[,23]
par(mfrow=c(1,3))
ans1<-cv.glmnet(X, Y, alpha=0) # ridge
plot(ans1$glmnet.fit, "lambda", label=FALSE)
text (6, 0.4, "A", cex=1.8, font=1)
ans2<-cv.glmnet(X, Y, alpha=1) # lasso
plot(ans2$glmnet.fit, "lambda", label=FALSE)
text (-0.8, 0.48, "B", cex=1.8, font=1)
ans3<-cv.glmnet(X, Y, alpha=0.5) # elastic net 
plot(ans3$glmnet.fit, "lambda", label=FALSE)
text (0, 0.62, "C", cex=1.8, font=1)

用于绘制弹性净系数路径的代码与用于脊和套索的代码完全相同。唯一的区别在于alpha值。基于最低Lambda值的最低MSE(均方误差)选择用于弹性净回归的Alpha参数。

谢谢您的帮助 !

Answers:


5

p<npn

如果原始特征不是很相关,那么我可以说,Lasso在系数路径方面的表现类似于Elastic Net。查看glmnet软件包的文档,我也看不到您的代码中的任何错误。


非常感谢您的评论。我开始考虑使用正则化方法选择最佳模型,因为我观察到变量之间存在严重的多重共线性(VIF >> 10)。他们中的许多人的相关程度> 0.8,因此我期望弹性网的表现与套索不同,并且表现出分组效应(在相关变量的情况下)。
初学者

您可能只需要使用更强的岭惩罚?
dcl

您是否检查了df调整的多重共线性?因子变量通常具有多重共线性,因为它们是互斥的。我不知道这种多重共线性是否会给套索带来问题。
巴卡堡2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.