Понимание параметра max_features в RandomForestRegressor

При построении каждого дерева в случайном лесу с использованием загрузочных выборок для каждого терминала node мы выбираем m переменных случайным образом из p-переменных, чтобы найти лучший раскол (p - общее количество функций в ваших данных). Мои вопросы (для RandomForestRegressor):

1) Что соответствует max_features (m или p или что-то еще)?

2) Являются ли переменные m произвольно выбранными из переменных max_features (каково значение m)?

3) Если max_features соответствует m, то зачем мне устанавливать его равным p для регрессии (по умолчанию)? Где случайность с этой настройкой (т.е. Как она отличается от мешков)?

Спасибо.

Ответ 1

Прямо из документации:

[max_features] - размер случайных подмножеств рассматриваемых объектов при разбиении a node.

Итак, max_features - это то, что вы называете m. Когда max_features="auto", m = p, и в деревьях не выполняется выбор подмножества признаков, поэтому "случайный лес" на самом деле представляет собой мешковатый ансамбль обычных деревьев регрессии. В документах говорится, что

Эмпирические хорошие значения по умолчанию max_features=n_features для задач регрессии и max_features=sqrt(n_features) для задач классификации

Установив max_features по-другому, вы получите "истинный" случайный лес.