У меня возникают трудности с пониманием того, как интерпретировать выходные данные переменной важности из пакета Random Forest. Среднее снижение точности обычно описывается как «снижение точности модели из-за изменения значений в каждой функции».
Это утверждение о функции в целом или о конкретных значениях в функции? В любом случае, означает ли среднее снижение точности количество или долю наблюдений, которые были неправильно классифицированы путем удаления рассматриваемого элемента (или значений из элемента) из модели?
Скажем, у нас есть следующая модель:
require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)
Call:
randomForest(formula = Species ~ ., data = dat, ntree = 25,
proximity = TRUE, importance = TRUE, nodesize = 5)
Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2
OOB estimate of error rate: 3.33%
Confusion matrix:
other virginica class.error
other 97 3 0.03
virginica 2 48 0.04
В этой модели показатель OOB довольно низкий (около 5%). Тем не менее, среднее снижение точности для предиктора (Petal.Length) с наибольшим значением в этой мере составляет всего около 8.
Означает ли это, что удаление Petal.Length из модели приведет только к дополнительной ошибочной классификации в среднем примерно 8 наблюдений?
Как может среднее снижение точности для Petal.Length быть настолько низким, учитывая, что оно является самым высоким в этой мере, и, таким образом, другие переменные имеют даже более низкие значения для этой меры?
Ответы:
« Является ли это утверждение о функции в целом или о конкретных значениях в функции? »
« В любом случае, среднее снижение точности - это количество или доля наблюдений, которые неправильно классифицированы путем удаления рассматриваемого элемента (или значений из элемента) из модели? »
- « Означает ли это, что удаление Petal.Length из модели приведет только к дополнительной ошибочной классификации в среднем примерно 8 наблюдений? »
« Как среднее снижение точности для Petal.Length может быть настолько низким, учитывая, что оно является самым высоким в этой мере, и, таким образом, другие переменные имеют даже более низкие значения для этой меры? »
В основном используйте значение переменных главным образом для оценки полезности ваших переменных. Четкое толкование абсолютных значений переменной важности трудно сделать хорошо.
Джини: Важность GINI измеряет среднее увеличение чистоты путем разделения данной переменной. Если переменная полезна, она имеет тенденцию разбивать смешанные помеченные узлы на чистые узлы одного класса. Расщепление переставленными переменными не имеет тенденцию ни увеличивать, ни уменьшать чистоту узла. Перестановка полезной переменной, как правило, приводит к относительно большому уменьшению среднего усиления по Джини. Важность GINI тесно связана с локальной функцией принятия решений, которую случайный лес использует для выбора наилучшего доступного разбиения. Следовательно, для вычисления не требуется много дополнительного времени. С другой стороны, среднее усиление Джини в локальных разбиениях не обязательно является тем, что наиболее полезно измерять, в отличие от изменения общей производительности модели. Важность Джини в целом уступает (на основе перестановок) переменной важности, поскольку она относительно более предвзята, более нестабильна и имеет тенденцию отвечать на более косвенный вопрос.
источник
Вот описание среднего снижения точности (MDA) из справочного руководства randomForest:
Согласно описанию, «точность» в MDA на самом деле относится к точности моделей одиночного дерева , независимо от того, что нас больше волнует уровень ошибок леса . Так,
Как примечание, процедура MDA, описанная Сореном, отличается от реализации пакета randomForest. Это ближе к тому, что мы хотим от MDA: снижение точности всей модели леса. Тем не менее, модель, вероятно, будет соответствовать другим без Petal.Length и больше полагаться на других предикторов. Таким образом, MDA Сорен был бы слишком пессимистичным.
источник
Недавнее (сообщение в блоге) [ https://explained.ai/rf-importance/index.html] от команды из Университета Сан-Франциско показывает, что стратегии важности по умолчанию как в R (randomForest), так и в Python (scikit) ненадежны во многих сценариях данных. В частности, среднее снижение показателей важности примесей смещается, когда потенциальные переменные предиктора различаются по шкале измерения или количеству категорий.
В статьях и постах блога показано, как переменные с непрерывной и высокой кардинальностью являются предпочтительными при среднем снижении рейтинга важности примесей, даже если они одинаково неинформативны по сравнению с переменными с меньшим количеством категорий. Авторы предлагают использовать важность перестановок вместо значений по умолчанию в этих случаях. Если переменные-предикторы в вашей модели сильно коррелированы, предполагается важность условной перестановки.
Примесь смещена, так как каждый раз, когда в переменной выбирается точка останова, каждый уровень переменной проверяется, чтобы найти наилучшую точку останова. Переменные с непрерывной или высокой кардинальностью будут иметь гораздо больше точек разделения, что приводит к проблеме «множественного тестирования». То есть, существует более высокая вероятность того, что случайно эта переменная хорошо предсказывает результат, поскольку переменные, в которых пробуется больше разбиений, будут чаще появляться в дереве.
источник