Реализация с в , вторым порядком оптимизации и продуманной работой с разреженностью.
Ключевые тезисы
- Использует и для выбора оптимального разбиения.
- Штрафы за число листьев и величину весов встроены в критерий.
- Автоматически обрабатывает пропуски, выбирая оптимальное направление ветвления.
Какую задачу решает
— это , доведённый до инженерного стандарта. Алгоритмически он добавил к классической схеме два важных изменения: разложение до второго порядка (используется не только градиент, но и ) и явную структуры дерева прямо в критерий разбиения.
Практическое значение оказалось даже больше алгоритмического: параллельное построение деревьев, работа с разреженными данными и пропусками, поддержка . Именно превратил из «одного из методов» в то, чем по умолчанию решают табличные задачи.
Порядок важности примерно такой: learning_rate (0.05 и ), max_depth (начните с 6), min_child_weight (регулирует минимальный размер листа), subsample и colsample_bytree (0.8 как разумный старт), затем gamma и lambda. Ошибка новичка — крутить сразу всё сеткой: пространство огромно, а вклад параметров сильно неравномерен. Настройте первые три, зафиксируйте, и только потом занимайтесь .
Подробный разбор
Классический использует только . раскладывает по Тейлору до второго порядка, поэтому учитывает и кривизну.
- объект: вектор признаков
- функция потерь — то, что минимизируется при обучении
- суммирование по всем перечисленным элементам
- частная производная — чувствительность к одному аргументу
- сила регуляризации
- веса модели — то, что подбирается при обучении
- суммирование по всем перечисленным элементам
- сила регуляризации
- параметр ядра 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, хеширование, эмбеддинги.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Второй порядок
Аппроксимация лосса через и даёт точнее выбранные разбиения и вес листа в замкнутой форме.
Разбор ниже: Второй порядок и разложение ТейлораРегуляризация структуры
Штрафы за число листьев и за величину их весов входят прямо в критерий разбиения.
Разбор ниже: Регуляризация и работа с пропускамиSparsity-aware split
Для пропусков алгоритм сам выучивает направление по умолчанию, а не требует импьютации.
Разбор ниже: Регуляризация и работа с пропускамиsubsample и colsample
Случайные подвыборки объектов и на дерево — бэггинг поверх против .
Разбор ниже: Регуляризация и работа с пропускамиLevel-wise рост
Дерево растёт по уровням — устойчивее, чем leaf-wise в , но обычно медленнее.
Разбор ниже: Второй порядок и разложение ТейлораГлава «Классическое машинное обучение» последний раз правилась . Нашли ошибку — напишите.