Tengo el siguiente código, que básicamente trata de predecir el Species
de iris
datos utilizando randomForest . Lo que realmente me interesa es encontrar cuáles son las mejores características (variables) que explican la clasificación de las especies. He encontrado el paquete randomForestExplainer es el mejor para servir al propósito.
library(randomForest)
library(randomForestExplainer)
forest <- randomForest::randomForest(Species ~ ., data = iris, localImp = TRUE)
importance_frame <- randomForestExplainer::measure_importance(forest)
randomForestExplainer::plot_multi_way_importance(importance_frame, size_measure = "no_of_nodes")
El resultado del código produce este gráfico:
Basándose en el gráfico, el factor clave para explicar por qué Pétalo.Longitud y Pétalo.Anchura es el mejor factor son estos (la explicación se basa en el viñeta ):
mean_min_depth
- profundidad mínima media calculada de una de las tres maneras especificadas por el parámetro mean_sample,times_a_root
- número total de árboles en los que se utiliza Xj para dividir el nodo raíz (es decir, toda la muestra se divide en dos en función del valor de Xj),no_of_nodes
- número total de nodos que utilizan Xj para la división (suele ser igual a no_of_trees si los árboles son poco profundos),
No me queda del todo claro por qué el alto times_a_root
y no_of_nodes
¿es mejor? Y bajo mean_min_depth
¿es mejor?
¿Cuál es la explicación intuitiva para ello?
El viñeta la información no ayuda.