Какой алгоритм лучше?

CatBoost(повышение категории), LightGBM(машина с усилением градиента света) и XGBoost (eXtreme Gradient Boosting) — все алгоритмы повышения градиента. Прежде чем углубляться в их сходство и различия с точки зрения характеристик и производительности, мы должны понять термин ансамблевое обучение и то, как оно связано с повышением градиента.

Оглавление

  1. Обучение ансамблю
  2. Catboost против LightGBM против характеристик XGBoost
  3. Повышение точности, скорости и контроль переобучения
  4. Сравнение производительности

ансамблевое обучение

Ансамблевое обучение — это метод, который объединяет прогнозы из нескольких моделей, чтобы получить прогноз, который был бы более стабильным и лучше обобщал. Идея состоит в том, чтобы усреднить отдельные ошибки разных моделей, чтобы снизить риск переобучения при сохранении высокой производительности прогнозирования.

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

Существует два основных класса методов ансамблевого обучения, а именно бэггинг и бустинг, хотя алгоритмы машинного обучения (МО) могут представлять собой комбинацию обоих с некоторыми вариациями.

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

CatBoost, LightGBM и XGBoost — все это варианты алгоритмов повышения градиента. Теперь, когда вы поняли разницу между бэггингом и бустингом, мы можем перейти к различиям в том, как алгоритмы реализуют бустинг градиента.

Характеристики Catboost, LightGBM и XGBoost

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

Симметрия дерева

В CatBoost симметричные деревья или сбалансированные деревья относятся к условию разделения, согласованному для всех узлов на одной и той же глубине дерева. LightGBM и XGBoost, с другой стороны, приводят к асимметричным деревьям, что означает, что условия разделения для каждого узла на одной и той же глубине могут различаться.

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

Несмотря на то, что LightGBM и XGBoost являются асимметричными деревьями, LightGBM растет по листам, а XGBoost — по уровням. Проще говоря, мы можем думать о LightGBM как о выборочном выращивании дерева, что приводит к меньшим и более быстрым моделям по сравнению с XGBoost.

Метод разделения

Метод разделения относится к тому, как определяется условие разделения.

В CatBoost используется жадный метод, так что листу в качестве разделения назначается список возможных кандидатов пар признаков и разделений, и выбирается разделение, которое приводит к наименьшему штрафу.

В LightGBM односторонняя выборка на основе градиента (GOSS) сохраняет все экземпляры данных с большими градиентами и выполняет случайную выборку для экземпляров данных с малыми градиентами. Градиент относится к наклону тангенса функции потерь. Точки данных с большими градиентами имеют более высокие ошибки и будут важны для нахождения оптимальной точки разделения, в то время как точки данных с меньшими градиентами имеют меньшие ошибки и будут важны для сохранения точности изученных деревьев решений. Этот метод выборки приводит к меньшему количеству экземпляров данных для обучения модели и, следовательно, к более быстрому обучению.

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

Тип бустинга

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

Категориальные столбцы

Параметры категориальных столбцов для разных алгоритмов следующие:

  • CatBoost: cat_features, one_hot_max_size
  • СветGBM: categorical_feature
  • XGBoost: нет данных

Повышение точности, скорости и контроль переобучения

В ансамблевом обучении усреднение прогноза по разным моделям помогает при переоснащении. Однако, как и в случае любого древовидного алгоритма, существует возможность переобучения. Переобучение может быть обработано путем разделения набора данных на обучающий, проверочный и тестовый наборы, что позволяет выполнять перекрестную проверку, раннюю остановку или обрезку дерева. Для сравнения различных алгоритмов мы сосредоточимся на управлении переоснащением с использованием параметров модели.

Обратите внимание, что для управления сложностью модели XGBoost использует параметр max_depth (поскольку он растет по уровням), тогда как LightGBM использует параметр num_leaves (поскольку он растет по листам).

Сравнение производительности

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

Однако, как правило, из литературы XGBoost и LightGBM дают одинаковую производительность, при этом CatBoost и LightGBM работают намного быстрее, чем XGBoost, особенно для больших наборов данных.

Надеюсь, вы лучше понимаете три самых популярных типа алгоритмов повышения машинного обучения — CatBoost, LightGBM и XGBoost, которые в основном различаются структурно. На практике специалисты по данным обычно пробуют различные типы алгоритмов машинного обучения со своими данными, поэтому пока не исключайте какой-либо алгоритм! Помимо соображений понятности, производительности и времени при выборе между различными алгоритмами, также крайне важно точно настроить модели с помощью настройки гиперпараметров и контролировать переоснащение с помощью конвейерной архитектуры или гиперпараметров.

Ссылки по теме

CatBoost

LightGBM

XGBoost