Как минимальное количество объектов в листе дерева влияет на переобучение
Что проверяют
Понимаете ли вы связь гиперпараметра со смещением и разбросом, а не просто правило «больше значит меньше переобучения». Следом спрашивают, чем min_samples_leaf отличается от min_samples_split и max_depth и как та же идея выглядит в бустинге.
Как отвечать
Начните с механики. Лист выдаёт среднее значение (регрессия) или долю классов (классификация) по попавшим в него объектам. При min_samples_leaf=1, а это значение по умолчанию в scikit-learn, дерево может отвести каждому объекту свой лист и получить нулевую ошибку на обучении: смещение минимальное, разброс огромный, шум запомнен.
Дальше про влияние:
- рост параметра: каждое предсказание усредняется по большему числу объектов, оценка стабильнее, дерево мельче, переобучение ниже;
- слишком большое значение: недообучение. Модель не видит мелких закономерностей, а редкий класс растворяется в крупных листьях;
- отличие от
min_samples_split: тот проверяет узел до разбиения, аmin_samples_leafгарантирует размер обоих потомков, поэтому ограничивает сильнее; - формат: целое число или доля выборки, например
0.01означает не меньше 1% объектов в листе; - бустинг: в LightGBM аналог
min_data_in_leaf(по умолчанию 20), в XGBoostmin_child_weightсчитает сумму гессианов, а не число объектов; - случайный лес: деревья там намеренно глубокие, дисперсию гасит усреднение, поэтому параметр часто оставляют маленьким.
Подбирают значение кросс-валидацией, глядя на кривую валидации: ошибка на обучении растёт вместе с параметром, а на валидации сначала падает, потом снова растёт.
Где спотыкаются
Путают min_samples_leaf и min_samples_split или считают, что это одно и то же с разными именами.
Говорят «ставим побольше, и переобучения не будет», не упоминая недообучение и дисбаланс классов.
Оценивают выбор по ошибке на обучающей выборке или по одному случайному разбиению. На маленьком датасете разброс между фолдами бывает больше, чем разница между соседними значениями параметра, и выбор получается случайным.