Mi chiedo come affrontare l'addestramento corretto e testare un modello LASSO usando glmnet in R?
- In particolare, mi chiedo come farlo se la mancanza di un set di dati di test esterno richiede l'uso della convalida incrociata (o altro approccio simile) per testare il mio modello LASSO.
Vorrei analizzare il mio scenario:
Ho solo un set di dati per informare e addestrare il mio modello glmnet. Di conseguenza, dovrò utilizzare la convalida incrociata per suddividere i miei dati per generare anche un modo per testare il mio modello.
Sto già usando cv.glmnet
, che secondo i dettagli del pacchetto :
Convalida incrociata k-fold per glmnet, produce un grafico e restituisce un valore per lambda.
La convalida incrociata viene eseguita
cv.glmnet
semplicemente per scegliere la migliore lambda o serve anche come una procedura di convalida incrociata più generale?- In altre parole, devo ancora eseguire un altro passaggio di convalida incrociata per "testare" il mio modello?
Sto lavorando con il presupposto che "sì, lo faccio".
Stando così le cose, come posso avvicinarmi alla convalida incrociata del mio cv.glmnet
modello?
Devo farlo manualmente o forse la
caret
funzione è utile per i modelli glmnet?Devo usare due "loop" concentrici di validazione incrociata? ... Uso un "loop interno" di CV via
cv.glmnet
per determinare il miglior valore lambda all'interno di ciascuna delle k pieghe di un "loop esterno" dell'elaborazione della validazione incrociata di k-fold ?Se eseguo la convalida incrociata del mio
cv.glmnet
modello di convalida incrociata , come posso isolare il modello "migliore" (dal valore "lambda" migliore) da ciascuncv.glmnet
modello all'interno di ogni piega del mio "anello esterno" di convalida incrociata altrimenti?- Nota: sto definendo il modello "migliore" come il modello associato a un lambda che produce un MSE entro 1 SE del minimo ... questo è il
$lambda.1se
nelcv.glmnet
modello.
- Nota: sto definendo il modello "migliore" come il modello associato a un lambda che produce un MSE entro 1 SE del minimo ... questo è il
Contesto:
Sto cercando di prevedere l'età dell'albero ("età") in base al diametro dell'albero ("D"), D ^ 2 e specie ("fattore (SPEC)"). [equazione risultante: Age ~ D + factor(SPEC) + D^2
]. Ho ~ 50K righe di dati, ma i dati sono longitudinali (tiene traccia degli individui nel tempo) e sono composti da ~ 65 specie.