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.glmnetsemplicemente 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.glmnetmodello?
Devo farlo manualmente o forse la
caretfunzione è utile per i modelli glmnet?Devo usare due "loop" concentrici di validazione incrociata? ... Uso un "loop interno" di CV via
cv.glmnetper 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.glmnetmodello di convalida incrociata , come posso isolare il modello "migliore" (dal valore "lambda" migliore) da ciascuncv.glmnetmodello 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.1senelcv.glmnetmodello.
- 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.