У меня есть следующий код, который в основном пытается предсказать Species
из данных iris
с использованием randomForest. То, что я действительно пересекаю, - это найти лучшие функции (переменные), которые объясняют классификацию видов. Я нашел пакет randomForestExplainer, который лучше всего подходит для этой цели.
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")
Результат кода дает этот график:
Основываясь на сюжете, ключевым фактором, объясняющим, почему Petal.Length и Petal.Width является лучшим фактором, являются (объяснение основано на виньетке):
-
mean_min_depth
- средняя минимальная глубина, рассчитанная одним из трех способов, определяемых параметром mean_sample, -
times_a_root
- общее количество деревьев, в которых Xj используется для расщепления корневого узла (т.е. весь выборка делится на два на основе значения Xj), -
no_of_nodes
- общее количество узлов, которые используют Xj для расщепления (обычно это равно no_of_trees, если деревья мелкие),
Мне не совсем понятно, почему times_a_root
и no_of_nodes
лучше? А низкий mean_min_depth
лучше?
Каково интуитивное объяснение этому?
Информация о виньте не помогает.