Случайный лес - Макс Особенности - PullRequest
0 голосов
/ 30 января 2020

У меня есть вопрос, и мне нужна ваша поддержка. У меня есть набор данных, который я анализирую. Мне нужно предсказать цель. Чтобы сделать это, я провел некоторую очистку данных, в том числе сильно упал (линейно коррелированные значения)

После подготовки данных я применил случайный лесной регрессор (это проблема регрессии). Я застрял немного, так как я действительно не могу уловить значение и, следовательно, значение max_features

Я нашел следующую страницу ответ , где написано

features = n_features для регрессии - ошибка со стороны scikit. Оригинальная статья для РФ дала max_features = n_features / 3 для регрессии

Я получаю разные результаты, если я использую max_features = sqrt (n) или max_features = n_features

Может ли любой1 дать мне хорошее объяснение, как подойти к этому параметру?

Это было бы действительно здорово

1 Ответ

1 голос
/ 31 января 2020

max_features - это параметр, который необходимо настроить. Такие значения, как sqrt или n/3, являются значениями по умолчанию и обычно работают прилично, но параметр необходимо оптимизировать для каждого набора данных, поскольку он будет зависеть от имеющихся у вас функций, их корреляций и важности.

Поэтому я предлагаю многократно тренировать модель с сеткой значений для max_features, пробуя каждое возможное значение от 2 до общего числа ваших функций.
Тренируйте RandomForestRegressor с oob_score=True и используйте oob_score_ для оценки производительности леса. После того, как вы перебрали все возможные значения max_features, оставьте значение, которое получило наибольшее значение oob_score.

В целях безопасности сохраните значение n_estimators на верхнем уровне.

PS: эта процедура в основном является оптимизацией поиска по сетке для одного параметра и обычно выполняется с помощью перекрестной проверки. Поскольку RF дают вам оценки OOB, вы можете использовать их вместо CV, так как они быстрее вычисляются.

...