Что такое бутстрэпированные выборки в случайном лесу
Что проверяют
Знаете ли вы, откуда в случайном лесу разнообразие деревьев и почему ансамбль переобученных деревьев обобщает лучше одного. Следом почти всегда спрашивают, какая доля объектов не попадает в выборку и что с ними делают, а потом чем бэггинг отличается от бустинга.
Как отвечать
Бутстрэп-выборка имеет тот же размер n, что и исходные данные, но собирается с возвращением: n раз подряд берётся случайный объект, и один и тот же может попасться несколько раз. Каждое дерево леса учится на своей такой выборке.
Ключевые цифры:
- около 63,2% уникальных объектов: вероятность, что объект ни разу не выбран, равна
(1 − 1/n)^nи стремится к 1/e ≈ 0,368; - out-of-bag, около 36,8%: объекты, которых дерево не видело. На них качество оценивают без отдельной валидации: каждый объект предсказывают только деревья, которые на нём не учились. В scikit-learn это
oob_score=True, результат вoob_score_.
Зачем это нужно: глубокое дерево без ограничений имеет низкое смещение и большую дисперсию. Усреднение снижает дисперсию, но деревья на похожих данных сильно коррелируют, и выигрыш упирается в эту корреляцию. Поэтому лес добавляет второй источник случайности: на каждом разбиении перебирается случайное подмножество признаков. У RandomForestClassifier по умолчанию max_features="sqrt", у регрессора с версии 1.1 это 1.0, то есть все признаки, и такой лес по сути сводится к бэггингу деревьев.
Параметры: bootstrap=True по умолчанию, max_samples позволяет брать выборку меньше n. У ExtraTreesClassifier бутстрэп выключен, разнообразие там даёт случайный выбор порогов.
Где спотыкаются
Говорят, что дерево учится на «70% данных» или на подвыборке без возвращения. Размер бутстрэп-выборки равен исходному, меньше он только при явном max_samples.
Утверждают, что бутстрэп спасает каждое дерево от переобучения. Отдельные деревья как раз переобучены, бэггинг снижает дисперсию ансамбля, а смещение почти не трогает.
Доверяют OOB-оценке без оговорок. На временных рядах и данных с группами (несколько строк одного клиента) она завышает качество так же, как случайный сплит.