На каком этапе выбираются случайные признаки в случайном лесу: на каждом разбиении или для всего дерева
Что проверяют
Знаете ли вы алгоритм, а не только вызов fit. Оба варианта в вопросе звучат правдоподобно, поэтому по ответу сразу видно, читали ли вы, как устроен случайный лес, или пересказываете общие слова про ансамбли.
Как отвечать
Подмножество признаков выбирается заново в каждом узле, при каждом разбиении, а не один раз на дерево. Источников случайности в лесу два:
- бэггинг: каждое дерево учится на бутстрэп-выборке объектов, примерно треть объектов в неё не попадает и служит out-of-bag оценкой качества;
- случайное подпространство признаков: в каждом узле перебирается только случайное подмножество размера
max_features, и лучшее разбиение ищется внутри него.
Именно второе декоррелирует деревья. Если зафиксировать признаки на дерево целиком, получится метод случайных подпространств, а не лес. И если в данных есть один сильный признак, он оказывался бы в корне почти всех деревьев, деревья вышли бы похожими, а усреднение похожих ошибок ничего не даёт.
Можно добавить про значения по умолчанию: в scikit-learn классификатор берёт корень из числа признаков, регрессор по умолчанию берёт все. Рост max_features усиливает каждое отдельное дерево, но повышает корреляцию между ними, а при значении, равном числу признаков, лес вырождается в обычный бэггинг деревьев.
Где спотыкаются
Смешивают два уровня случайности и говорят, что в каждом узле берётся ещё и своя подвыборка объектов. Объекты выбираются один раз на дерево, признаки заново в каждом узле.
Второе: считают, что чем больше max_features, тем лучше. Это параметр компромисса между силой отдельного дерева и разнообразием леса, и подбирают его по out-of-bag оценке или кросс-валидации, а не по принципу «больше значит точнее».
Третье: утверждают, что лес не переобучается вовсе. Рост числа деревьев к переобучению действительно не ведёт, ошибка выходит на плато, но глубокие деревья на шумных данных прекрасно запоминают обучающую выборку. Туда же относится встроенная важность признаков: она смещена в сторону признаков с большим числом уникальных значений.