Me pregunto cómo abordar adecuadamente el entrenamiento y la prueba de un modelo LASSO usando glmnet en R.
- Específicamente, me pregunto cómo hacerlo si la falta de un conjunto de datos de prueba externo requiere el uso de validación cruzada (u otro enfoque similar) para probar mi modelo LASSO.
Déjame analizar mi escenario:
Solo tengo un conjunto de datos para informar y entrenar mi modelo glmnet. Como resultado, tendré que usar la validación cruzada para dividir mis datos para generar también una forma de probar mi modelo.
Ya estoy usando cv.glmnet
, que de acuerdo con los detalles del paquete :
Hace k-fold validación cruzada para glmnet, produce un gráfico y devuelve un valor para lambda.
¿La validación cruzada se realiza
cv.glmnet
simplemente para elegir la mejor lambda, o también sirve como un procedimiento de validación cruzada más general?- En otras palabras, ¿todavía necesito hacer otro paso de validación cruzada para "probar" mi modelo?
Estoy trabajando con la suposición de que "sí, lo hago".
Siendo ese el caso, ¿cómo me acerco a la validación cruzada de mi cv.glmnet
modelo?
¿Tengo que hacerlo manualmente o tal vez la
caret
función sea útil para los modelos glmnet?¿Utilizo dos "bucles" concéntricos de validación cruzada? ... ¿Utilizo un "bucle interno" de CV
cv.glmnet
para determinar el mejor valor lambda dentro de cada uno de los k pliegues de un "bucle externo" del proceso de validación cruzada k-fold ?Si hago una validación cruzada de mi
cv.glmnet
modelo de validación cruzada , ¿cómo aíslo el "mejor" modelo (del "mejor" valor lambda) de cadacv.glmnet
modelo dentro de cada pliegue de mi "lazo externo" de validación cruzada?- Nota: Estoy definiendo el "mejor" modelo como el modelo asociado con una lambda que produce un MSE dentro de 1 SE del mínimo ... este es
$lambda.1se
elcv.glmnet
modelo.
- Nota: Estoy definiendo el "mejor" modelo como el modelo asociado con una lambda que produce un MSE dentro de 1 SE del mínimo ... este es
Contexto:
Estoy tratando de predecir la edad del árbol ("edad") en función del diámetro del árbol ("D"), D ^ 2 y la especie ("factor (SPEC)"). [ecuación resultante: Age ~ D + factor(SPEC) + D^2
]. Tengo ~ 50K filas de datos, pero los datos son longitudinales (rastrea individuos a lo largo del tiempo) y consta de ~ 65 especies.