Градиентный бустинг

Содержание

Слайд 2

Алгоритм градиентного бустинга

Алгоритм градиентного бустинга

Слайд 3

Градиентный бустинг над деревьями

Градиентный бустинг над деревьями

 

Слайд 4

Градиентный бустинг над решаюшими деревьями

Градиентный бустинг над решаюшими деревьями

Слайд 5

XGBoost XGBoost (eXtreme Gradient Boosting) представляет собой усовершенствованную реализацию алгоритма градиентного

XGBoost

XGBoost (eXtreme Gradient Boosting) представляет собой усовершенствованную реализацию алгоритма градиентного бустинга.

XGBoost обладает высокой предсказательной способностью и работает почти в 10 раз быстрее, чем градиентный бустинг из библиотеки . Он также включает в себя различные регуляризации, которые уменьшают переобучение и улучшают общую производительность. Поэтому он также известен как "регуляризованный бустинг".
Рассмотрим ключевые характеристики данного инструмента:
Обработка разреженных данных: пропущенные значения или этапы обработки данных, такие как one-hot кодирование, делают данные разреженными. XGBoost использует алгоритм поиска разбиения с учетом разреженности для обработки различных типов паттернов разреженности в данных;
Блок-структура для параллельного обучения: для более быстрых вычислений XGBoost может использовать несколько ядер на CPU. Это возможно из-за блочной структуры в его системном проектировании.
Внеядерные вычисления: эта реализация оптимизирует доступное дисковое пространство и максимизирует его использование при обработке огромных наборов данных, которые не помещаются в память.
Слайд 6

LightGBM LightGBM – это библиотека градиентного бустинга, которая выращивает деревья вертикально,

LightGBM

LightGBM – это библиотека градиентного бустинга, которая выращивает деревья вертикально, в

то время как XGBoost выращивает деревья горизонтально. То есть LightGBM растет, увеличивая количество уровней дерева, а XGBoost растет, увеличивая число листьев
LightGBM обладает следующими преимуществами:
LightGBM использует алгоритмы, которые преобразуют непрерывные значения признаков в дискретные. Это ускоряет обучение, уменьшает расход памяти и увеличивает эффективность.
У LightGBM лучшая точность, чем у любого другого алгоритма бустинга: LightGBM создает намного более сложные деревья. Однако, иногда это может привести к переобучению, которого можно избежать, установив параметр максимально возможной глубины дерева.
Совместимость с большими наборами данных: LightGBM способен одинаково хорошо работать с большими наборами данных при значительном сокращении времени обучения.
Поддерживается параллельное обучение.
LightGBM превосходит все остальные алгоритмы бустинга в тех случаях, когда набор данных чрезвычайно велик, тем самым LightGBM занимает меньше времени для работы с огромными наборами данных по сравнению с другими.
Слайд 7

CatBoost CatBoost (происходит от двух слов category и boosting) может автоматически

CatBoost

CatBoost (происходит от двух слов category и boosting) может автоматически обрабатывать

категориальные переменные, при этом не нуждается в обширной предварительной обработке данных, как другие алгоритмы машинного обучения.
CatBoost обладает следующими важными характеристиками:
поддержка категориальных признаков: CatBoost не требует какой-либо предварительной обработки для преобразования категорий в числа;
работа с небольшим набором данных: на маленьких наборах данных градиентный бустинг быстро переобучается, а в Catboost есть специальная модификация для таких случаев;
простые и наглядные встроенные инструменты визуализации процесса обучения;
в алгоритме четко продумана начальная инициализация гиперпараметров, поэтому его можно использовать, не тратя время и силы на их перебор.
быстрое и простое в использовании обучение на GPU.
Слайд 8

Сравнение LightGBM и XGBoost Иллюстрация работы XGBoost. Иллюстрация работы LightGBM

Сравнение LightGBM и XGBoost

Иллюстрация работы XGBoost.

Иллюстрация работы LightGBM

Слайд 9

LightGBM реализация from lightgbm import LGBMClassifier Создаем классификатор model = LGBMClassifier(n_estimators=40,

LightGBM реализация

from lightgbm import LGBMClassifier
Создаем классификатор
model = LGBMClassifier(n_estimators=40, num_leaves=255, learning_rate=0.1)
Обучаемся
model.fit( X_train,

y_train,
categorical_feature=cat_features)
Предсказываем
predict = model.predict(X_test)
Слайд 10

CatBoost реализация from catboost import CatBoostClassifier Создаем классификатор best_model = CatBoostClassifier(

CatBoost реализация

from catboost import CatBoostClassifier
Создаем классификатор
best_model = CatBoostClassifier( iterations=500, depth=4,

l2_leaf_reg = 4.0,
learning_rate = 0.07, custom_loss=['AUC', 'Accuracy’])
Обучаемся
best_model.fit( X_train, y_train, cat_features=cat_features,
eval_set=(X_validation, y_validation),
logging_level='Silent’, plot=True)
Предсказываем
predict = best_model.predict(X_test)