Estoy tratando de determinar qué alfa usar en mi glmnet
función, pero el archivo de ayuda me dice:
Tenga en cuenta que cv.glmnet NO busca valores para alfa. Se debe proporcionar un valor específico; de lo contrario, se supone alfa = 1 de forma predeterminada. Si los usuarios desean validar también alfa, deben llamar a cv.glmnet con un vector foldid precalculado y luego usar este mismo vector de pliegue en llamadas separadas a cv.glmnet con diferentes valores de alpha.
Sin embargo, no entiendo:
- Qué es el vector / argumento foldid.
- Cómo crear el vector foldid
- Cómo usar el argumento foldid.
Cualquier ayuda con esto sería muy apreciada!
r
lasso
ridge-regression
glmnet
el forestalteólogo
fuente
fuente
Respuestas:
fold.id
permite al usuario especificar previamente los pliegues de validación cruzada paracv.glmnet
. Por ejemplo, si tengo algunos datosLuego, pasar la columna indicada como
fold.id
argumentocv.glmnet
hará que (por ejemplo) las dos primeras observaciones residan en el mismo pliegue, y la tercera y cuarta observaciones residan en el mismo pliegue (diferente).Los autores sugieren que si desea elegir entre una colección discreta de basada en una estimación de validación cruzada de algún error en una óptima , entonces es mejor utilizar la misma estructura de pliegue en cada de sus validaciones cruzadas al determinar cada .α λα λα
fuente
rbinom(now(X), n.folds, rep(1/n.folds, n.folds))
.De acuerdo con la viñeta de Glmnet , una forma de configurar
foldid
for glmnet es:Y luego aplicar a una serie de alfas:
La
sample()
función básicamente le permite generar un vector de números aleatorios en el rango que proporciona (= 1: nfolds) para la longitud de la variable de respuesta matriz y . De esta manera, asigna cada una de sus filas de matriz de entrada a un pliegue aleatorio (pero ahora configurado).fuente