Interested Article - XGBoost

XGBoost (eXtreme Gradient Boosting) — это библиотека с открытым исходным кодом , используемая в машинном обучении и предоставляющая функциональность для решения задач, связанных с регуляризацией градиентного бустинга . Библиотека поддерживается языками программирования C++ , Java , Python , R , Julia , Perl и Scala . Библиотека работает под ОС Linux , Windows , и macOS . Она работает как на одной машине, так и на системах распределенной обработки Apache Hadoop , Apache Spark и Apache Flink .

В последнее время эта библиотека приобрела большую популярность и привлекла внимание как выбор многих команд-победителей соревнований по машинному обучению .

История

XGBoost изначально начинался как исследовательский проект Чэн Тяньци как часть группы Distributed (Deep) Machine Learning Community (DMLC). Изначально она начиналась как консольная программа, которую можно было настроить с помощью конфигурационного файла . XGBoost стал широко известен в кругах участников соревнований по машинному обучению после его использования в решении победителя конкурса . Вскоре после этого были созданы пакеты для Python и R, и теперь XGBoost имеет реализации пакетов для Java, Scala , Julia , Perl и других языков. Это позволило привлечь к библиотеке больше разработчиков и способствовало ее популярности среди сообщества Kaggle , где она использовалась для проведения большого количества соревнований .

Вскоре XGBoost был интегрирован с рядом других пакетов, что упростило его использование в соответствующих сообществах. Сейчас он интегрирован в scikit-learn для пользователей Python и в пакет для пользователей R . Он также может быть интегрирован в такие фреймворки Data Flow, как Apache Spark , Apache Hadoop и Apache Flink с помощью абстрактного Rabit и XGBoost4J . XGBoost также доступен на OpenCL для ПЛИС . Эффективная, масштабируемая реализация XGBoost была опубликована Чэн Тяньци и Карлосом Густрином .

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

Функционал

Основные особенности XGBoost, отличающие его от других алгоритмов градиентного бустинга, включают: .

Описание алгоритма

XGBoost использует Метод Ньютона-Рафсона в пространстве функций, в отличие от , который работает как градиентный спуск в пространстве функций, в функции потерь используется ряд Тейлора второго порядка для связи с методом Ньютона-Рафсона.

Общий вид нерегуляризованного алгоритма XGBoost:

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

Алгоритм:

  1. Инициализировать модель постоянным значением:
  2. Для m = от 1 до M :
    1. Вычислите "градиенты" и "гессианы":
    2. Подогнать базового/слабого обучающегося, используя обучающее множество , решив следующую оптимизационную задачу:
    3. Обновление модели:
  3. Результат:

Награды

  • Премия (2016)
  • Премия High Energy Physics meets Machine Learning award (HEP meets ML) (2016)

Примечания

  1. . Дата обращения: 17 апреля 2022. 1 апреля 2021 года.
  2. . Дата обращения: 1 августа 2016. 23 августа 2017 года.
  3. . Дата обращения: 1 августа 2016. 26 октября 2018 года.
  4. . Дата обращения: 1 августа 2016. Архивировано из 18 августа 2016 года.
  5. . Дата обращения: 9 февраля 2020. 6 октября 2021 года.
  6. . Дата обращения: 1 августа 2016. 8 мая 2018 года.
  7. . Дата обращения: 1 августа 2016. 8 мая 2018 года.
  8. . Дата обращения: 1 августа 2016. 24 августа 2017 года.
  9. . Дата обращения: 1 августа 2016. Архивировано из 7 августа 2016 года.
  10. . Дата обращения: 1 августа 2016. 11 июня 2018 года.
  11. . Дата обращения: 1 августа 2016.
  12. . Дата обращения: 1 августа 2019.
  13. Chen, Tianqi; Guestrin, Carlos (2016). Krishnapuram, Balaji; Shah, Mohak; Aggarwal, Charu C.; Shen, Dou; Rastogi, Rajeev (eds.). Труды 22-й Международной конференции ACM SIGKDD по обнаружению знаний и добыче данных, Сан-Франциско, Калифорния, США, 13-17 августа 2016 года . ACM. pp. 785–794. arXiv : . doi : . {{ cite conference }} : Неизвестный параметр |вклад= игнорируется ( справка ) ; Неизвестный параметр |редактор3-первый= игнорируется ( справка ) ; Неизвестный параметр |редактор3-последний= игнорируется ( справка ) ; Пропущен |editor3= ( справка )
  14. Sagi, Omer; Rokach, Lior (2021). "Approximating XGBoost with an interpretable decision tree". Information Sciences . 572 (2021): 522-542. doi : .
  15. Gandhi, Rohith (англ.) . Medium (24 мая 2019). Дата обращения: 4 января 2020. 31 июля 2022 года.
  16. (англ.) . Towards Data Science (14 мая 2017). Дата обращения: 4 января 2020. Архивировано из 6 апреля 2022 года.
  17. (амер. англ.) . Synced (22 октября 2017). Дата обращения: 4 января 2020. 23 августа 2022 года.
  18. . Дата обращения: 1 августа 2016. 31 июля 2017 года.
  19. . Дата обращения: 1 августа 2016. 8 мая 2018 года.
Источник —

Same as XGBoost