Je voudrais comparer des modèles sélectionnés avec faîtage, lasso et filet élastique. La figure ci-dessous montre les chemins des coefficients en utilisant les 3 méthodes: crête (figure A, alpha = 0), lasso (figure B; alpha = 1) et filet élastique (figure C; alpha = 0,5). La solution optimale dépend de la valeur sélectionnée de lambda, qui est choisie en fonction de la validation croisée.
En regardant ces graphiques, je m'attendrais à ce que le filet élastique (figure C) présente un effet de regroupement. Cependant, ce n'est pas clair dans le cas présenté. Le chemin des coefficients pour le lasso et le filet élastique sont très similaires. Quelle pourrait être la raison de cela ? Est-ce juste une erreur de codage? J'ai utilisé le code suivant dans 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)
Le code utilisé pour tracer les chemins des coefficients nets élastiques est exactement le même que pour l'arête et le lasso. La seule différence réside dans la valeur de l'alpha. Le paramètre alpha pour la régression nette élastique a été sélectionné sur la base du MSE (erreur quadratique moyenne) le plus bas pour les valeurs lambda correspondantes.
Merci de votre aide !
la source