Мені хотілося б порівняти вибрані моделі з хребтом, ласо і еластичною сіткою. На рис. Нижче показані коефіцієнти шляхів з використанням усіх 3-х методів: конь (рис. А, альфа = 0), ласо (фіг. В; альфа = 1) і еластична сітка (фіг С; альфа = 0,5). Оптимальне рішення залежить від обраного значення лямбда, яке вибирається на основі перехресної перевірки.
Дивлячись на ці ділянки, я б очікував, що еластична сітка (рис. С) виявить ефект групування. Однак у цій справі це не зрозуміло. Шлях коефіцієнтів для ласо і пружної сітки дуже схожий. Що може бути причиною цього? Це просто помилка кодування? Я використав такий код у 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 (середня квадратична помилка) для відповідних значень лямбда.
Дякую за твою допомогу !