Классическое машинное обучение

CatBoost

CatBoost

актуальноТекущий рабочий стандарт

Бустинг от Яндекса с упорядоченным кодированием категорий и упорядоченным бустингом против смещения.

Ключевые тезисы

  • Категориальные признаки передаются как есть — кодирование внутри модели.
  • Симметричные (oblivious) деревья дают очень быстрый инференс.
  • Часто лучшее качество «из коробки» без тонкой настройки.

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

2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Упорядоченное кодирование категорий

Target encoding без утечки — встроенный в алгоритм.

CatBoost берёт случайную перестановку объектов и для каждого объекта считает статистику категории только по тем, кто идёт раньше него. Значение цели самого объекта в его признак не попадает.

Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков
  • вероятность (или плотность распределения)
  • суммирование по всем перечисленным элементам
Априорное и вес стабилизируют оценку для редких категорий
На практике

Из-за этого CatBoost часто выигрывает «из коробки» на данных с большим числом категориальных признаков: ручное кодирование обычно либо слабее, либо протекает.

2

Ordered boosting и симметричные деревья

Борьба со смещением предсказаний и очень быстрый инференс.

В обычном бустинге остатки считаются моделью, которая уже видела эти объекты — возникает смещение (prediction shift). Ordered boosting строит для каждого объекта оценку по модели, обученной без него.

Симметричные (oblivious) деревья используют один и тот же предикат на всём уровне. Такое дерево превращается в маленькую таблицу поиска: инференс становится в разы быстрее и легко векторизуется.

  • Симметричность работает и как регуляризация: модель менее склонна к переобучению.
  • Обучение на GPU и поддержка текстовых и эмбеддинг-признаков идут «из коробки».

Связанные темы

Деревья и ансамбли

Decision Trees85%

Решающие деревья · Классическое машинное обучение

Последовательность вопросов «признак > порог», разбивающая пространство на прямоугольные области.

Random Forest85%

Случайный лес · Классическое машинное обучение

Бэггинг деревьев со случайными подвыборками объектов и признаков: усреднение резко снижает дисперсию.

Gradient Boosting85%

Градиентный бустинг · Классическое машинное обучение

Последовательное построение деревьев, каждое из которых исправляет ошибки предыдущего ансамбля.

XGBoost85%

XGBoost · Классическое машинное обучение

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

LightGBM85%

LightGBM · Классическое машинное обучение

Быстрый бустинг от Microsoft: гистограммное разбиение и рост дерева по листьям вместо по уровням.

SHAP85%

SHAP · Интерпретируемость моделей

Распределение вклада признаков на основе значений Шепли из теории игр — с гарантиями аддитивности и согласованности.

Encoding85%

Кодирование категорий · Данные

Перевод категориальных признаков в числа: one-hot, ordinal, target encoding, хеширование, эмбеддинги.