XGBoost… Что это?

XGBoost – это алгоритм машинного обучения на основе дерева решений и использует фреймворк, повышающий градиент. Искусственные нейронные сети в основном превосходят другие фреймворки или алгоритмы при прогнозировании проблем с текстом, изображениями и другими неструктурированными данными. Когда речь идет о средних или малых табличных/структурированных данных, они сильно отличаются друг от друга. Почему? Потому что алгоритмы, основанные на деревьях решений, возможно, являются лучшим решением.

Алгоритм XGBoost стал результатом исследовательского проекта, организованного в Университете Вашингтона. Карлос Гестрин и Тяньци Чен представили свой доклад на конференции SIGKDD в 2016 году. С тех пор XGBoost стал известным алгоритмом, который произвел революцию в области машинного обучения.

С тех пор этот алгоритм получил тонны кредитов, в том числе несколько конкурсов Kaggle. Он также получил признание за влияние на различные современные промышленные приложения. Соответственно, массивная группа исследователей данных вносит свой вклад в различные проекты с открытым исходным кодом, связанные с XGBoost. На данный момент в GitHub насчитывается более трёхсот вкладчиков и тридцать шестьсот коммитов. Узнайте, как этот алгоритм выделяется на фоне других.

Как XGBoost выделяется

Обширный диапазон применений

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

Легко переносимый

Он бесперебойно работает на OSX, Linux и Windows.
Разнообразие языков

XGBoost поддерживает большинство языков программирования, включая Julia, Scala, Java, R, Python, C++.

Интеграция с Облаком

Алгоритм машинного обучения XGBoost поддерживает кластеры Yarn, лазурь и AWS. Он также невероятно хорошо работает с другими Spark, Flink и различными экосистемами.

Создание интуиции XG Boost.

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

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

Дерево решений

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

Пакетирование

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

Случайный лес

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

Boosting

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

Усиление градиента

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

XGBoost

XGBoosting является значительно более эффективной версией повышения градиента, отсюда и его название: Extreme Gradient Boosting. Это идеальное сочетание аппаратных и программных методов оптимизации для достижения превосходных результатов за счет использования минимальных вычислительных ресурсов в короткие сроки.


В чем секрет превосходной производительности XGBoost?


Машины повышения градиента и XGBoost – это методы дерева ансамбля. Они используют архитектуру градиентного спуска, чтобы применить этот принцип для увеличения количества бедных учащихся (CART.) Extreme Gradient Boostsign значительно улучшает структуру GBM, реализуя алгоритмические усовершенствования и оптимизацию систем.

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

Распараллеливание

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

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

Обрезка деревьев

XGBoost использует ‘max_depth’ и сначала игнорирует критерий, чтобы обрезать деревья назад. Этот подход отлично подходит для повышения вычислительной производительности.

Оптимизация аппаратного обеспечения

Алгоритм оптимизации аппаратного обеспечения эффективно использует аппаратные ресурсы. Это возможно за счет выделения внутренних буферов в каждом потоке для хранения статистики градиентов. Другие улучшения, такие как “внеъядерные” вычисления, используют дисковое пространство и обрабатывают кадры данных, которые не могут поместиться в памяти.

Улучшения алгоритма

Регуляризация

Он помогает штрафовать сложные модели с помощью Ridge и LASSO, чтобы избежать переоснащения.

Перекрестная проверка

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

Осведомленность о спарсити

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

Взвешенный квантильный эскиз

Extreme Gradient boost реализует алгоритм распределенного эскиза для поиска идеальных расщеплений пинты в взвешенных наборах данных.

XGBoost может стать будущим машинного обучения.

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

Наконец, машинное обучение – это обширный корм, и вы найдете массу альтернатив Extreme Gradient Boost. Cat Boost и Light GBM – это несколько недавних альтернатив, дающих впечатляющие результаты. Тем не менее, XGBoost царит в высшей степени с точки зрения объяснимости, прагматизма, гибкости, производительности и многого другого. Ожидайте, что этот алгоритм машинного обучения останется на вершине, пока не появится достойный претендент и не встряхнет все вокруг.