Considere el siguiente ajuste:
fit3a=glmnet(x,g4,family="multinomial",type.multinomial="grouped")
¿Cómo indico qué columnas x
son categóricas / multinomiales? ¿Existe una opción para especificar el índice de las variables agrupadas?
La documentación describe la opción de la type.multinomial
siguiente manera:
Si está "agrupado", se utiliza una penalización de lazo agrupada en los coeficientes multinomiales para una variable. Esto asegura que todos estén juntos en nuestra salida. El valor predeterminado es "desagrupado".
fuente
Como señala justmarkham, puede construir la matriz de diseño
x
utilizandomodel.matrix
. Tenga en cuenta que querrá excluir la intercepción, ya que glmnet incluye una por defecto. También es posible que desee cambiar la función de contraste predeterminada, que por omisión omite un nivel de cada factor (codificación de tratamiento). Pero debido a la penalización del lazo, esto ya no es necesario para la identificabilidad, y de hecho hace que la interpretación de las variables seleccionadas sea más complicada. Para hacer esto, establezcaAhora, cualquiera que sea el nivel de un factor seleccionado, puede pensar que sugiere que estos niveles específicos son importantes, en comparación con todos los niveles omitidos. En el aprendizaje automático, he visto que esta codificación se conoce como codificación de uno en caliente.
Suponiendo que
g4
tieneK
niveles, latype.multinomial="grouped"
opción especifica que todas las características dex
entrarán en el modelo simultáneamente para cada uno de losK
predictores lineales, en lugar de tener el predictor lineal para cada clase (en general) que tenga sus propias características.glmnet
no es compatible (¿actualmente?) con penalizaciones de predictores (lax
matriz) de tipo agrupado . El paquetegrplasso
sí, pero está escrito en R puro, por lo que es más lento queglmnet
, pero podría intentarlo.fuente
model.matrix
no excluye ningún nivel de la primera variable categórica cuando omitimos la intercepción. ¿Debería la matriz de diseño ser una entradaglmnet
independientemente? ¿Y cómo interpretamos el nivel no omitido de la primera variable categórica en la regresión de lazo?