He estado jugando con bosques aleatorios para la regresión y tengo dificultades para determinar exactamente qué significan las dos medidas de importancia y cómo deben interpretarse.
La importance()
función proporciona dos valores para cada variable: %IncMSE
y IncNodePurity
. ¿Hay interpretaciones simples para estos 2 valores?
En IncNodePurity
particular, ¿es esto simplemente la cantidad que aumenta el RSS después de la eliminación de esa variable?
?importance
? Hay una explicación sobre lo que significan ambas medidas ...Respuestas:
El primero se puede 'interpretar' de la siguiente manera: si un predictor es importante en su modelo actual, la asignación de otros valores para ese predictor de manera aleatoria pero 'realista' (es decir, permutar los valores de este predictor sobre su conjunto de datos), debería tener una influencia negativa en la predicción, es decir: usar el mismo modelo para predecir a partir de datos que son iguales, excepto para una variable, debería dar predicciones peores.
Entonces, toma una medida predictiva (MSE) con el conjunto de datos original y luego con el conjunto de datos 'permutado', y los compara de alguna manera. Una forma, particularmente dado que esperamos que el MSE original sea siempre más pequeño, se puede tomar la diferencia. Finalmente, para hacer que los valores sean comparables con las variables, estos se escalan.
Para el segundo: en cada división, puede calcular cuánto esta división reduce la impureza del nodo (para los árboles de regresión, de hecho, la diferencia entre RSS antes y después de la división). Esto se suma a todas las divisiones para esa variable, a todos los árboles.
Nota: una buena lectura es Elementos de aprendizaje estadístico de Hastie, Tibshirani y Friedman ...
fuente
Las métricas de importancia de Random Forest implementadas en el paquete randomForest en R tienen peculiaridades en que los predictores correlacionados obtienen valores de baja importancia.
http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.full.pdf
Tengo una implementación modificada de bosques aleatorios en CRAN que implementa su enfoque de estimación de valores p empíricos y tasas de descubrimiento falsas, aquí
http://cran.r-project.org/web/packages/pRF/index.html
fuente
caret::train(method="rf", importance = TRUE, ...)
??