Me gustaría usar el GLM y Red Elástica para seleccionar las características relevantes de + construir un modelo de regresión lineal (es decir, tanto la predicción y comprensión, por lo que sería mejor quedarse con relativamente pocos parámetros). La salida es continua. Es $20000$ genes por $50$ de los casos. He estado leyendo acerca de la glmnet
paquete, pero no estoy 100% seguro de los pasos a seguir:
Realizar un CV a elegir lambda:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) dado los datos de entrada, elegir un diferente valor de alfa?
(Q2) ¿tengo que hacer algo más antes de construir el modelo?Ajuste del modelo:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(T3) nada mejor que "covarianza"?
(P4) Si lambda fue elegido por el CV, ¿por qué este paso necesitanlambda=
?
(P5) es mejor,lambda.min
olambda.1se
?-
Obtener los coeficientes, para ver que parámetros se han caído ("."):
predict(model, type="coefficients")
En la página de ayuda hay muchas
predict
métodos (por ejemplo,predict.fishnet
,predict.glmnet
,predict.lognet
, etc). Pero cualquier "normal" predecir como vi en un ejemplo.
(P6) debo usarpredict
opredict.glmnet
o de otro tipo?
A pesar de lo que he leído acerca de los métodos de regularización, soy bastante nuevo en R y en estos paquetes estadísticos, así que es difícil estar seguro de si estoy adaptando mi problema con el código. Cualquier sugerencia será bienvenida.
ACTUALIZACIÓN
Basado en "Como se señaló anteriormente, un objeto de la clase tren, contiene un elemento llamado finalModel
, que es el modelo ajustado con el parámetro de ajuste de los valores seleccionados por el remuestreo. Este objeto puede ser utilizado de forma tradicional para generar predicciones para las nuevas muestras, el uso de la modelo
predecir la función".
El uso de caret
de sintonizar alfa y lambda:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
No fitM
reemplazar el anterior paso 2? Si es así, cómo especificar el glmnet opciones (type.gaussian="naive",lambda=cv$lambda.min/1se
) ahora?
Y el siguiente predict
paso, ¿se puede reemplazar el model
a fitM
?
Si hago
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
¿tiene sentido, en todo o soy yo incorrectamente la mezcla de ambas paquete de vocabulario?