Me gustaría usar GLM y Elastic Net para seleccionar esas características relevantes + construir un modelo de regresión lineal (es decir, predicción y comprensión, por lo que sería mejor quedarse con relativamente pocos parámetros). La salida es continua. Son genes por 50 casos. He estado leyendo sobre el paquete, pero no estoy 100% seguro de los pasos a seguir:glmnet
Realice CV para elegir lambda:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) dados los datos de entrada, ¿elegiría un valor alfa diferente?
(P2) ¿necesito hacer algo más antes de construir el modelo?Ajustar el modelo:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(Q3) ¿ algo mejor que "covarianza"?
(P4) Si CV eligió lambda, ¿por qué necesita este pasonlambda=?
(P5) ¿ es mejor usarlambda.minolambda.1se?Obtenga los coeficientes para ver qué parámetros se han caído ("."):
predict(model, type="coefficients")En la página de ayuda hay muchos
predictmétodos (por ejemplo,predict.fishnet,predict.glmnet,predict.lognet, etc). Pero cualquier predicción "simple" como vi en un ejemplo.
(P6) debo usarpredictopredict.glmnetu otro?
A pesar de lo que he leído sobre los métodos de regularización, soy bastante nuevo en R y en estos paquetes estadísticos, por lo que es difícil estar seguro si estoy adaptando mi problema al código. Cualquier sugerencia será bienvenida.
ACTUALIZACIÓN
Basado en "Como se señaló anteriormente, un objeto del tren de clases contiene un elemento llamado finalModel, que es el modelo ajustado con los valores de los parámetros de ajuste seleccionados mediante remuestreo. Este objeto se puede usar de la manera tradicional para generar predicciones para nuevas muestras, usando eso función de predicción del modelo ".
Utilizando caretpara sintonizar alfa y lambda:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
¿ fitMReemplaza el paso anterior 2? Si es así, ¿cómo especificar las opciones de glmnet ( type.gaussian="naive",lambda=cv$lambda.min/1se) ahora?
Y el siguiente predictpaso, que puede sustituir modela fitM?
Si lo hago
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
¿Tiene sentido o estoy mezclando incorrectamente el vocabulario de ambos paquetes?

caretes un paquete de envoltorio R que envuelve las interfaces de funciones de más de 100 paquetes ML para ser más coherente y agrega CV, gridsearch, modifica los valores predeterminados de parámetros, etc. No carece de peculiaridades, pero es bastante bueno y ampliamente utilizado.cva.glmnet(..)lugar de solocv.glmnet(...)y sintonizar alfa y lambda al mismo tiempo. Luego puedes correrminlossplot(cva.fit)para ver qué alfa da el mejor resultado. Esto es parte de glmnetUtils