28 votos

Caret y coeficientes (glmnet)

Estoy interesado en utilizar caret para hacer inferencias sobre un conjunto de datos concreto. ¿Es posible hacer lo siguiente?

  1. producen los coeficientes de un modelo glmnet que entrené en caret. Me gustaría utilizar glmnet debido a la selección de características inherente ya que no creo que glm lo tenga?

  2. Aparte de la métrica ROC, ¿hay alguna otra métrica que pueda utilizar para evaluar el ajuste del modelo? Por ejemplo, el ajuste $R^2$ ?

El propósito de este análisis es obtener alguna inferencia sobre los efectos de determinadas variables, más que para la predicción. Simplemente me gusta el paquete caret porque hasta ahora ha sido fácil trabajar con él usando matrices.

3 votos

El paquete de caretas viene con una serie de viñetas (y un documento JSS) que cubren la mayoría de sus preguntas. ¿Podría indicar a qué se refiere exactamente con "derivar alguna inferencia sobre el efecto de determinadas variables"?

0 votos

Inferencia a través de los coeficientes. Estoy leyendo Applied Predictive Modeling para aprender más sobre R y la construcción de modelos simultáneamente. He leído las viñetas y el pdf, pero hay tantas funciones que es difícil seguirlas todas. Sin embargo, Zach ha respondido a mi pregunta, así que se lo agradezco. Gracias.

0 votos

En realidad he encontrado en el enlace que doy aquí la mejor respuesta para extraer los coeficientes finales del modelo stackoverflow.com/questions/48079660/

48voto

Boris Tsirelson Puntos 191

Digamos que su modelo caret se llama "modelo". Puedes acceder al modelo final de glmnet con model$finalModel . A continuación, puede llamar a coef(model$finalModel) etc. Tendrá que seleccionar un valor de lambda para el que quiera coeficientes, como por ejemplo coef(model$finalModel, model$bestTune$.lambda) .

Echa un vistazo a la summaryFunction para el parámetro trainControl función. Le permitirá especificar cualquier función que desee minimizar (o maximizar, véase el maximize argumento para train ), dado un predictor y una respuesta.

Puede ser difícil llegar a la R^2 ajustada de esta manera, pero probablemente se podría obtener la R^2 o algo similar.

3 votos

Gracias, Zach. Eso fue exactamente. También quiero agradecerte tu paquete caretEnsemble. Por favor, mantén el buen trabajo.

0 votos

@user2300643 ¡No hay problema! Me alegro de que uses el paquete.

8 votos

En caret versión 6.0.78 , la mejor sintonía de lambda es ahora: model$bestTune$lambda .

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X