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

Как loss учитывается при выборе split в бустинге

Как дерево в gradient boosting выбирает split с учетом loss function?

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

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

Загрузка

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

Boosting аппроксимирует изменение loss через градиенты, а иногда и гессианы. Split выбирается по gain: насколько разбиение улучшает сумму оптимальных leaf values.

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

В gradient boosting новое дерево учится исправлять ошибки текущего ансамбля. Для каждого объекта считается градиент loss по текущему prediction. В second-order вариантах используется еще гессиан. Loss рядом с текущим prediction раскладывается в ряд Тейлора.

Для candidate split алгоритм смотрит, как объекты разделятся по листьям, и оценивает, насколько уменьшится аппроксимированный loss после выбора оптимальных значений в листьях. Split с лучшим gain выбирается, если он проходит регуляризацию и ограничения.

В разных библиотеках детали отличаются, но смысл общий: дерево строится не по "чистой" impurity вроде Gini само по себе, а по тому, как split помогает уменьшить выбранную objective function ансамбля.

Теория

Boosting строит дерево как шаг оптимизации loss, используя градиентную информацию текущего ансамбля.

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

  • Объяснять gradient boosting как независимый random forest.
  • Не связывать split gain с objective function.
  • Забывать про регуляризацию leaf values.