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

XGBoost

XGBoost

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

Направления: Машинное обучение · Классический ML

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

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

  • Использует и для выбора оптимального разбиения.
  • Штрафы за число листьев и величину весов встроены в критерий.
  • Автоматически обрабатывает пропуски, выбирая оптимальное направление ветвления.

Какую задачу решает

— это , доведённый до инженерного стандарта. Алгоритмически он добавил к классической схеме два важных изменения: разложение до второго порядка (используется не только градиент, но и ) и явную структуры дерева прямо в критерий разбиения.

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

С чего начинать настройку

Порядок важности примерно такой: learning_rate (0.05 и ), max_depth (начните с 6), min_child_weight (регулирует минимальный размер листа), subsample и colsample_bytree (0.8 как разумный старт), затем gamma и lambda. Ошибка новичка — крутить сразу всё сеткой: пространство огромно, а вклад параметров сильно неравномерен. Настройте первые три, зафиксируйте, и только потом занимайтесь .

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

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

Классический использует только . раскладывает по Тейлору до второго порядка, поэтому учитывает и кривизну.

Обозначения
  • объект: вектор признаков
  • функция потерь — то, что минимизируется при обучении
  • суммирование по всем перечисленным элементам
  • частная производная — чувствительность к одному аргументу
Обозначения
  • сила регуляризации
  • веса модели — то, что подбирается при обучении
  • суммирование по всем перечисленным элементам
Оптимальный вес листа выводится аналитически — отсюда и скорость, и точность

Обозначения
  • сила регуляризации
  • параметр ядра RBF: радиус влияния объекта
  • веса модели — то, что подбирается при обучении
  • суммирование по всем перечисленным элементам
— число листьев; штрафует за их количество, — за величину весов
  • Разбиение делается только если выигрыш превышает — встроенная предобрезка.
  • Sparsity-aware split: для объектов с пропуском алгоритм выучивает, в какую ветвь их отправлять.
  • Гистограммный режим (tree_method="hist") убирает необходимость сортировать на каждом шаге.

Где применяется

  • Табличные задачи в продеСкоринг, отток, антифрод, спрос: проверенный временем выбор с предсказуемым поведением.
  • СоревнованияМноголетний стандарт Kaggle; часть решений до сих пор строится вокруг него.
  • Разреженные высокой мощности обрабатывается эффективно за счёт учёта разреженности.
  • Работает на кластерах через и Dask, когда данные не помещаются в память.

Плюсы, минусы и альтернативы

Плюсы

  • Очень высокое качество на табличных данных при аккуратной настройке.
  • Встроенная делает его устойчивее наивного .
  • Пропуски обрабатываются штатно, импьютация не нужна.
  • Зрелая экосистема: биндинги, , интеграции.
  • Предсказуемое поведение и обширная документация накопленных практик.

Минусы

  • Медленнее на больших выборках.
  • Категориальные требуют ручного кодирования (в отличие от ).
  • Много взаимозависимых .
  • Память растёт с числом и глубиной.
  • Переобучается без , как любой .

Брать, если

  • Табличная задача, нужен проверенный инструмент с предсказуемым поведением.
  • Данные разрежены или в них много пропусков.
  • Нужна распределённая обучалка на кластере.

Не брать, если

  • Данных десятки миллионов строк и важна скорость — обучится быстрее.
  • Категориальных много и они высокой мощности — избавит от ручного кодирования.
  • Задача не табличная.

Чем заменяют

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

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

Decision Trees85%

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

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

Random Forest85%

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

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

Gradient Boosting85%

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

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

LightGBM85%

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

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

CatBoost85%

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

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

SHAP85%

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

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

Encoding85%

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

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

Следующий шагДальше по связи: Decision TreesПоследовательность вопросов «признак > порог», разбивающая пространство на прямоугольные области.Перейти →

Глава «Классическое машинное обучение» последний раз правилась . Нашли ошибку — напишите.