Какой алгоритм лучше?
CatBoost(повышение категории), LightGBM(машина с усилением градиента света) и XGBoost (eXtreme Gradient Boosting) — все алгоритмы повышения градиента. Прежде чем углубляться в их сходство и различия с точки зрения характеристик и производительности, мы должны понять термин ансамблевое обучение и то, как оно связано с повышением градиента.
Оглавление
- Обучение ансамблю
- Catboost против LightGBM против характеристик XGBoost
- Повышение точности, скорости и контроль переобучения
- Сравнение производительности
ансамблевое обучение
Ансамблевое обучение — это метод, который объединяет прогнозы из нескольких моделей, чтобы получить прогноз, который был бы более стабильным и лучше обобщал. Идея состоит в том, чтобы усреднить отдельные ошибки разных моделей, чтобы снизить риск переобучения при сохранении высокой производительности прогнозирования.
В регрессии общее предсказание обычно представляет собой среднее значение предсказаний отдельных деревьев, тогда как в классификации общее предсказание основано на взвешенном голосовании с вероятностями, усредненными по всем деревьям, а класс с наибольшей вероятностью является окончательным предсказанным классом.
Существует два основных класса методов ансамблевого обучения, а именно бэггинг и бустинг, хотя алгоритмы машинного обучения (МО) могут представлять собой комбинацию обоих с некоторыми вариациями.
- Метод бэгинга создает модели параллельно с использованием случайного подмножества данных (выборка с заменой) и объединяет прогнозы всех моделей.
- Повышающий метод последовательно строит модели, используя все данные, при этом каждая модель улучшает ошибку предыдущей модели.
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
- Документация: https://catboost.ai/ru/docs/
- Официальный GitHub: https://github.com/catboost/catboost
- Статья: https://learningsys.org/nips17/assets/papers/paper_11.pdf
LightGBM
- Документация: https://lightgbm.readthedocs.io/
- Официальный GitHub: https://github.com/microsoft/LightGBM
- Статья: https://proceedings.neurips.cc/paper/2017/file/6449f44a102fde848669bdd9eb6b76fa-Paper.pdf
XGBoost
- Документация: https://xgboost.readthedocs.io/
- Официальный GitHub: https://github.com/dmlc/xgboost
- Документ: https://arxiv.org/pdf/1603.02754.pdf