Перейти к основному содержимому

Популярные реализации

На языке python алгоритм градиентного бустинга над решающими деревьями реализован в библиотеке sklearn классами GradientBoostingClassifier и GradientBoostingRegressor для решения задач классификации и регрессии соответственно.

Там также реализованы ускоренные версии алгоритма HistGradientBoostingClassifier и HistGradientBoostingRegressor, производящие настройку правил во внутренних узлах решающих деревьев за счёт перебора не по всем допустимым порогам, а по более грубой сетке значений. Также эти реализации допускают автоматическую обработку пропущенных значений признаков, отправляя все объекты с пропущенным признаком либо в левое, либо в правое поддерево, в зависимости от того, что приводит к большему снижению функции неопределённости.

Тремя самыми продвинутыми реализациями бустинга являются:

НазваниеДокументацияРазработчики
xgBoostсайтXGBoost Contributors
LightGBMсайтMicrosoft
CatBoostсайтЯндекс

Все реализации допускают параллелизацию настройки базовых моделей, которые поддерживаются как на процессоре, так и на видеокарте.

Реализации используют расширенный набор гиперпараметров, влияющих на точность ансамбля. При настройке правил в узлах деревьев допускается оптимизация не по всем порогам, а по более грубой сетке значений для ускорения обучения модели на больших данных. При этом

  • xgBoost [1] использует оптимизацию второго порядка за счёт квадратичной аппроксимации функции потерь. Добавлены возможности регуляризации каждого решающего дерева.

  • LightGBM [2] настраивает каждую базовую модель не на всех данных, а на подмножестве объектов, сильнее всего влияющих на прогнозы ансамбля, что существенно ускоряет настройку модели. Также метод использует специальную технику для эффективной работы с разреженными данными (содержащими много нулевых значений).

  • CatBoost [3] строится не над традиционными, а над небрежными решающими деревьями (oblivious decision trees), в которых на каждом уровне дерева во всех узлах проверяется условие над одним и тем же признаком. Это позволяет настраивать деревья быстрее без потери качества всего ансамбля. Также CatBoost использует специальную обработку категориальных признаков.

Литература

  1. Chen T., Guestrin C. Xgboost: A scalable tree boosting system //Proceedings of the 22nd acm sigkdd international conference on knowledge discovery and data mining. – 2016. – С. 785-794.
  2. Ke G. et al. Lightgbm: A highly efficient gradient boosting decision tree //Advances in neural information processing systems. – 2017. – Т. 30.
  3. Prokhorenkova L. et al. CatBoost: unbiased boosting with categorical features //Advances in neural information processing systems. – 2018. – Т. 31.