능선, 올가미 및 탄성 그물로 선택한 모델을 비교하고 싶습니다. 아래 그림은 릿지 (그림 A, 알파 = 0), 올가미 (그림 B; 알파 = 1) 및 탄성 그물 (그림 C; 알파 = 0.5)의 세 가지 방법을 모두 사용하여 계수 경로를 보여줍니다. 최적의 솔루션은 선택된 람다 값에 따라 달라지며, 이는 교차 검증을 기반으로 선택됩니다.
이 그림을 볼 때 탄성 그물 (그림 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)
탄성 순 계수 경로를 그리는 데 사용되는 코드는 릿지 및 올가미와 동일합니다. 유일한 차이점은 알파의 가치입니다. 탄성 순 회귀에 대한 알파 파라미터는 대응하는 람다 값에 대한 가장 낮은 MSE (평균 제곱 오차)에 기초하여 선택되었다.
도와 주셔서 감사합니다!