Назад к подготовке

Bagging, boosting и регуляризация деревьев

Чем отличаются bagging и gradient boosting? Что будет, если убрать одно дерево из Random Forest и из gradient boosting, и как деревья могут переобучаться на редких категориальных признаках?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

Bagging обучает независимые деревья на bootstrap-выборках и усредняет их, поэтому удаление одного дерева обычно мало влияет. Boosting строит деревья последовательно по остаткам/градиентам, поэтому раннее дерево влияет на последующие. Редкие категории могут давать маленькие листья с экстремальными предсказаниями.

Полный разбор

Bagging снижает variance: деревья обучаются независимо на bootstrap-выборках, а итог получается усреднением или голосованием. Random Forest дополнительно сэмплирует признаки в сплитах, чтобы деревья были менее коррелированы. Если убрать одно дерево из 100, качество обычно меняется слабо.

Gradient boosting строит аддитивную модель последовательно. Каждое следующее дерево обучается исправлять остатки или градиенты текущей модели, поэтому ранние деревья задают путь для всех последующих. Удаление первого дерева может сильно испортить качество, даже если технически inference не падает.

Деревья переобучаются на редких категориальных признаках, когда создают маленькие листья с экстремальным target. Помогают max_depth, min_samples_leaf, min_gain, subsampling, learning rate и L1/L2-регуляризация значений листьев в бустинге.

Теория

Bagging и boosting уменьшают разные ошибки: bagging в основном variance, boosting - bias через последовательное исправление ошибок.

Типичные ошибки

  • Сказать, что деревья в boosting независимы.
  • Не объяснить, почему первое дерево в boosting особенно важно.
  • Забыть про min leaf size и регуляризацию leaf values.

Как отвечать на собеседовании

  • Дайте по одному предложению на bagging и boosting.
  • Для редких категорий назовите depth, min leaf size и регуляризацию листьев.