Меняется ли важность функции с количеством max_features, выбранных в RandomForestRegressor, scikit-learn? - PullRequest
0 голосов
/ 27 апреля 2018

В одном из моих проектов я пытался определить, какие из моих 12 функций являются наиболее движущими факторами для целевой переменной, используя RandomForestRegressor (sklearn). RandomForest приятно дает вам список важных функций, который объясняет, какие из функций лучше всего использовать для объяснения цели. Но я все еще не уверен насчет того, каким должно быть значение max_features для моей модели, потому что ответ по умолчанию - использовать все функции, которые означали бы, что моя модель - это просто множество деревьев. После нескольких обсуждений имело смысл использовать n / 3 в качестве максимального числа объектов, если вы действительно ищете случайный лес из деревьев. Я продолжил с n / 3 в качестве максимального числа функций, потому что я получал довольно хороший r-квадрат.
Совсем недавно я понял, что мои значения функций совершенно разные, когда я изменил max_features на n. Если значения функций действительно относительно друг друга по шкале от 1 до 10, может ли она действительно увеличиваться / имеет ли смысл увеличиваться с 0,36 до 0,81, когда я изменяю число элементов с n / 3 на n? Итак, что должно быть max_features, если я пытаюсь определить наиболее объяснительную переменную, учитывая, что я получаю довольно хороший r-квадрат как с n / 3, так и с n. Я не могу понять, что мне не хватает. enter image description here Пожалуйста, предложите, как поступить. Большое спасибо.

1 Ответ

0 голосов
/ 30 апреля 2018

Да.

Первый сценарий:

Предположим, что есть две функции feat1 и feat2, которые предоставляют информацию одного и того же типа для модели. Теперь, если в данных присутствуют оба, и модель сначала выбирает одно, значение feat1 будет большим. Теперь модель анализирует вторую функцию feat2 и приходит к выводу, что она не обеспечивает какого-либо значительного увеличения знаний по сравнению с feat1. Так что значение feat2 будет относительно небольшим.

Второй сценарий:

Вы изменили max_features на n/3 и почему-то feat1 теперь не рассматривается. Таким образом, информация, предоставленная feat2, теперь больше, чем раньше. Так что его значение может значительно возрасти.

Обратите внимание, что это для одной модели. Я не знаю, как это влияет на весь ансамбль. И, возможно, вы сможете получить более подробную информацию о https://stats.stackexchange.com.

...