Je me demande comment aborder correctement la formation et le test d'un modèle LASSO à l'aide de glmnet dans R?
- Plus précisément, je me demande comment procéder si l'absence d'un ensemble de données de test externe nécessite que j'utilise la validation croisée (ou une autre approche similaire) pour tester mon modèle LASSO.
Permettez-moi de décomposer mon scénario:
Je n'ai qu'un seul ensemble de données pour informer et former mon modèle glmnet. En conséquence, je devrai utiliser la validation croisée pour fractionner mes données et générer également un moyen de tester mon modèle.
J'utilise déjà cv.glmnet
, qui selon les détails du paquet :
Effectue une validation croisée k-fold pour glmnet, produit un tracé et renvoie une valeur pour lambda.
La validation croisée est-elle effectuée
cv.glmnet
simplement pour sélectionner la meilleure lambda, ou sert-elle également de procédure de validation croisée plus générale?- En d'autres termes, dois-je encore effectuer une autre étape de validation croisée pour «tester» mon modèle?
Je travaille avec l'hypothèse que "oui je le fais".
Cela étant, comment aborder la validation croisée de mon cv.glmnet
modèle?
Dois-je le faire manuellement ou la
caret
fonction est-elle utile pour les modèles glmnet?Dois-je utiliser deux "boucles" concentriques de validation croisée? ... Dois-je utiliser une "boucle interne" de CV via
cv.glmnet
pour déterminer la meilleure valeur lambda dans chacun des k plis d'une "boucle externe" de traitement de validation croisée k-fold ?Si je fais une validation croisée de mon
cv.glmnet
modèle déjà à validation croisée , comment puis-je isoler le "meilleur" modèle (de la "meilleure" valeur lambda) de chaquecv.glmnet
modèle dans chaque pli de ma "boucle externe" de validation croisée autrement?- Remarque: Je définis le "meilleur" modèle comme le modèle associé à un lambda qui produit un MSE à 1 SE du minimum ... c'est le
$lambda.1se
dans lecv.glmnet
modèle.
- Remarque: Je définis le "meilleur" modèle comme le modèle associé à un lambda qui produit un MSE à 1 SE du minimum ... c'est le
Le contexte:
J'essaie de prédire l'âge de l'arbre ("âge") en fonction du diamètre de l'arbre ("D"), de D ^ 2 et des espèces ("facteur (SPEC)"). [équation résultante: Age ~ D + factor(SPEC) + D^2
]. J'ai environ 50 000 lignes de données, mais les données sont longitudinales (suivent les individus dans le temps) et se composent d'environ 65 espèces.