Что такое алгоритм XGBoost?

XGBoost или Extreme Gradient boost - это алгоритм машинного обучения, который используется для реализации деревьев решений с градиентным усилением. Почему деревья решений? Когда мы говорим о неструктурированных данных, таких как изображения, неструктурированные текстовые данные и т. Д., Модели ANN (искусственная нейронная сеть), кажется, находятся на самом верху, когда мы пытаемся прогнозировать. Хотя, когда мы говорим о структурированных / полуструктурированных данных, деревья решений в настоящее время являются лучшими. XGBoost был в основном разработан для значительного улучшения скорости и производительности моделей машинного обучения, и он очень хорошо справлялся с этой задачей.

Работа алгоритма XGBoost

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

Это делает алгоритм XGBoost в 10 раз быстрее, чем любой из существующих алгоритмов повышения градиента.

XGBoost и GBM (т.е. машины повышения градиента) используют древовидные методы с использованием архитектуры градиентного спуска.

Область, в которой XGBoost опережает другие GBM, - это область системной оптимизации и улучшений по сравнению с алгоритмами.

Давайте посмотрим на это подробно:

Оптимизация системы:

1. Обрезка деревьев. Алгоритм XGBoost использует подход, основанный на глубине, в отличие от критерия остановки для расщепления деревьев, используемого GBMS, который является жадным по своей природе, а также зависит от отрицательного критерия потерь. Вместо этого XGBoost использует элемент / параметр максимальной глубины и, следовательно, обрезает дерево в обратном направлении.

2. Распараллеливание . Процесс последовательного построения дерева выполняется с использованием распараллеленной реализации в алгоритме XGBoost. Это стало возможным благодаря тому, что внешние и внутренние петли являются взаимозаменяемыми. Внешний цикл перечисляет листовые узлы дерева, в то время как внутренний цикл будет вычислять объекты. Кроме того, для запуска внешнего цикла внутренний цикл должен быть завершен. Этот процесс переключения повышает производительность алгоритма.

3. Оптимизация аппаратного обеспечения - Оптимизация аппаратного обеспечения также учитывалась при разработке алгоритма XGBoost. Внутренние буферы выделяются для каждого из потоков для хранения статистики градиента.

Алгоритмические улучшения:

  • Осведомленность о Sparsity - известно, что XGBoost очень эффективно обрабатывает различные типы шаблонов разреженности. Этот алгоритм изучает пропущенное значение гнезда, видя потерю тренировки.
  • Регуляризация - чтобы предотвратить переоснащение, он корректирует более сложные модели, реализуя как LASSO (также называемый L1), так и регуляризацию Ridge (также называемую L2).
  • Перекрестная проверка . Алгоритм XGBoost имеет встроенные функции перекрестной проверки, которые реализуются на каждой итерации при создании модели. Это исключает необходимость в подсчете необходимого количества повторений.
  • Распределенный взвешенный эскиз квантиля. Алгоритм XGBoost использует распределенный взвешенный эскиз квантиля, чтобы получить оптимальное количество точек разделения среди взвешенных наборов данных.

Особенности XGBoost

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

А) Особенности модели

Функции, такие как sci-kit, изучают регуляризацию, а реализация языка R поддерживается XGBoost. Основные методы повышения градиента, которые поддерживаются:

  • Stochastic Gradient Boosting - столбец, строка и столбец для уровней разделения могут быть сэмплированы.
  • Повышение градиента
  • Регуляризованное повышение градиента - XGBoost исправляет более сложные модели, реализуя как LASSO (также называемый L1), так и регуляризацию Ridge (также называемую L2).

Б) Особенности системы

Особенности системы включают в себя:

1. Распределенные вычисления - эта функция используется для обучения очень больших моделей путем реализации кластера машин.

2. Распараллеливание - во время обучения все ядра ЦП используются для распараллеливания построения дерева

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

4. Out of Core Computing - Для наборов данных, которые не помещаются в память, XGBoost подразумевает базовые вычисления.

C) Особенности алгоритма

Одной из основных целей алгоритма XGBoost было наилучшее использование всех доступных ресурсов. Некоторые из основных алгоритмических особенностей XGBoost:

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

Зачем использовать XGBoost?

Основное назначение XGBoost:

  • Скорость исполнения
  • Модель Производительность

Давайте обсудим их обоих.

1. Скорость исполнения

Когда мы сравниваем XGBoost с другими алгоритмами повышения градиента, XGBoost оказывается действительно быстрым, примерно в 10 раз быстрее, чем другие реализации.

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

Оказалось, что XGBoost был самым быстрым. Больше чтения можно найти здесь

2. Модель производительности

Когда мы говорим о неструктурированных данных, таких как изображения, неструктурированные текстовые данные и т. Д., Модели ANN (искусственная нейронная сеть), кажется, находятся на самом верху, когда мы пытаемся прогнозировать. Хотя, когда мы говорим о структурированных / полуструктурированных данных, деревья решений в настоящее время являются лучшими, и когда они реализованы с использованием XGBoost, ни один другой алгоритм повышения не может победить это на данный момент.

Алгоритм, используемый XGboost

Алгоритм XGBoost использует алгоритм дерева решений для повышения градиента.

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

Вывод: алгоритм XGBoost

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

Рекомендуемые статьи

Это было руководство по алгоритму XGBoost. Здесь мы обсудили его концепцию, особенности, использование для машинного обучения, работу алгоритма в XGBoost. Вы также можете посмотреть следующие статьи, чтобы узнать больше -

  1. НЛП в Python
  2. Алгоритм трассировки лучей
  3. Алгоритм цифровой подписи
  4. Алгоритм Интервью Вопросы
  5. Криптография с цифровой подписью