XGBoost
Разработчик(и) | Участники XGBoost |
---|---|
Первоначальный выпуск | 27 марта 2014 г |
Стабильная версия | 2.0.3 [1] / 19 декабря 2023 г |
Репозиторий | |
Написано в | С++ |
Операционная система | Linux , macOS , Microsoft Windows |
Тип | Машинное обучение |
Лицензия | Лицензия Апач 2.0 |
Веб-сайт | xgboost |
XGBoost [2] (eXtreme Gradient Boosting) — это с открытым исходным кодом программная библиотека , которая предоставляет структуру регуляризации повышения градиента для C++ , Java , Python , [3] Р , [4] Юля , [5] Перл , [6] и Скала . Работает в Linux , Microsoft Windows , [7] и macOS . [8] Судя по описанию проекта, он направлен на создание «Масштабируемой, портативной и распределенной библиотеки повышения градиента (GBM, GBRT, GBDT)». Он работает на одной машине, а также на платформах распределенной обработки Apache Hadoop , Apache Spark , Apache Flink и Dask . [9] [10]
XGBoost приобрел большую популярность и внимание в середине 2010-х годов как алгоритм, который выбирают многие команды-победители соревнований по машинному обучению. [11]
История
[ редактировать ]XGBoost изначально начинался как исследовательский проект Тяньци Чена. [12] в составе группы Distributed (Deep) Machine Learning Community (DMLC). Первоначально он начинался как терминальное приложение, которое можно было настроить с помощью файла конфигурации libsvm . Он стал широко известен в кругах участников соревнований по машинному обучению после того, как был использован в победившем решении задачи машинного обучения Хиггса . Вскоре после этого были созданы пакеты Python и R, и теперь у XGBoost есть реализации пакетов для Java, Scala , Julia, Perl и других языков. Это привлекло к библиотеке больше разработчиков и способствовало ее популярности среди сообщества Kaggle , где она использовалась для большого количества соревнований. [11]
Вскоре он был интегрирован с рядом других пакетов, что упростило его использование в соответствующих сообществах. Теперь он интегрирован с scikit-learn для пользователей Python и с пакетом Caret для R. пользователей Его также можно интегрировать в инфраструктуры потока данных, такие как Apache Spark , Apache Hadoop и Apache Flink , используя абстрактную среду Rabit. [13] и XGBoost4J. [14] XGBoost также доступен на OpenCL для FPGA . [15] Эффективная масштабируемая реализация XGBoost была опубликована Тяньци Ченом и Карлосом Гестрином. [16]
Хотя модель XGBoost часто обеспечивает более высокую точность, чем одно дерево решений, она жертвует внутренней интерпретируемостью деревьев решений. Например, проследить путь, по которому дерево решений принимает решение, тривиально и самоочевидно, но следовать путям сотен или тысяч деревьев гораздо сложнее.
Функции
[ редактировать ]Существенные особенности XGBoost, которые отличают его от других алгоритмов повышения градиента, включают: [17] [18] [16]
- Умное наказание деревьев
- Пропорциональное сокращение листовых узлов.
- Повышение Ньютона
- Дополнительный рандомизации параметр
- Реализация в одиночных распределенных системах и внеядерных вычислениях.
- Автоматический выбор функции [ нужна ссылка ]
- Теоретически обоснованное взвешенное квантильное эскизирование для эффективных вычислений
- Повышение параллельной древовидной структуры за счет разреженности
- Эффективная кэшируемая блочная структура для обучения дерева решений.
Алгоритм
[ редактировать ]XGBoost работает как Ньютон-Рафсон в функциональном пространстве, в отличие от повышения градиента второго порядка , которое работает как градиентный спуск в функциональном пространстве, в функции потерь используется аппроксимация Тейлора для связи с методом Ньютона-Рафсона.
Общий нерегуляризованный алгоритм XGBoost:
Входные данные: обучающий набор. , дифференцируемая функция потерь , много слабых учеников и скорость обучения .
Алгоритм:
- Инициализируйте модель постоянным значением:
- Для m = 1 до M :
- Вычислите «градиенты» и «гессианы»:
- Подберите базового учащегося (или слабого учащегося, например, дерева), используя обучающий набор. решив задачу оптимизации ниже:
- Обновите модель:
- Выход
Награды
[ редактировать ]- Джона Чемберса Премия (2016) [19]
- Физика высоких энергий соответствует награде за машинное обучение (HEP соответствует ML) (2016 г.) [20]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Выпуск 2.0.3» . 19 декабря 2023 г. Проверено 19 декабря 2023 г.
- ^ «Веб-страница проекта GitHub» . Гитхаб . Июнь 2022 г. Архивировано из оригинала 1 апреля 2021 г. Проверено 5 апреля 2016 г.
- ^ «Индекс пакета Python PYPI: xgboost» . Архивировано из оригинала 23 августа 2017 г. Проверено 1 августа 2016 г.
- ^ «Пакет CRAN xgboost» . Архивировано из оригинала 26 октября 2018 г. Проверено 1 августа 2016 г.
- ^ «Список пакетов Julia xgboost» . Архивировано из оригинала 18 августа 2016 г. Проверено 1 августа 2016 г.
- ^ «Модуль CPAN AI::XGBoost» . Архивировано из оригинала 28 марта 2020 г. Проверено 9 февраля 2020 г.
- ^ «Установка XGBoost для Anaconda в Windows» . ИБМ . Архивировано из оригинала 08.05.2018 . Проверено 1 августа 2016 г.
- ^ «Установка XGBoost на Mac OSX» . ИБМ . Архивировано из оригинала 08.05.2018 . Проверено 1 августа 2016 г.
- ^ «Домашняя страница Даска» . Архивировано из оригинала 14 сентября 2022 г. Проверено 15 июля 2021 г.
- ^ «Распределяемый XGBoost с Dask — документация xgboost 1.5.0-dev» . xgboost.readthedocs.io . Архивировано из оригинала 4 июня 2022 г. Проверено 15 июля 2021 г.
- ^ Перейти обратно: а б «XGBoost — выигрышные решения ML (неполный список)» . Гитхаб . Архивировано из оригинала 24 августа 2017 г. Проверено 1 августа 2016 г.
- ^ «История и уроки эволюции XGBoost» . Архивировано из оригинала 7 августа 2016 г. Проверено 1 августа 2016 г.
- ^ «Rabit — надежный интерфейс Allreduce и широковещательной передачи» . Гитхаб . Архивировано из оригинала 11 июня 2018 г. Проверено 1 августа 2016 г.
- ^ "XGBoost4J" . Архивировано из оригинала 08.05.2018 . Проверено 1 августа 2016 г.
- ^ «XGBoost на ПЛИС» . Гитхаб . Архивировано из оригинала 13 сентября 2020 г. Проверено 1 августа 2019 г.
- ^ Перейти обратно: а б Чен, Тяньци; Гестрин, Карлос (2016). «XGBoost: масштабируемая система повышения качества деревьев». В Кришнапураме — Баладжи; Шах, Мохак; Смола, Александр Дж.; Аггарвал, Чару К.; Шен, Доу; Растоги, Раджив (ред.). Материалы 22-й Международной конференции ACM SIGKDD по обнаружению знаний и интеллектуальному анализу данных, Сан-Франциско, Калифорния, США, 13–17 августа 2016 г. АКМ. стр. 785–794. arXiv : 1603.02754 . дои : 10.1145/2939672.2939785 . ISBN 9781450342322 . S2CID 4650265 .
- ^ Ганди, Рохит (24 мая 2019 г.). «Повышение градиента и XGBoost» . Середина . Архивировано из оригинала 28 марта 2020 г. Проверено 4 января 2020 г.
- ^ «Усовершенствование деревьев с помощью XGBoost – почему XGBoost выигрывает «все» соревнования по машинному обучению?» . Синхронизировано . 22 октября 2017 г. Архивировано из оригинала 28 марта 2020 г. Проверено 4 января 2020 г.
- ^ «Премия Джона Чемберса предыдущим победителям» . Архивировано из оригинала 31 июля 2017 г. Проверено 1 августа 2016 г.
- ^ «HEP соответствует награде ML» . Архивировано из оригинала 08.05.2018 . Проверено 1 августа 2016 г.
- Программное обеспечение для интеллектуального анализа данных и машинного обучения
- Бесплатное программное обеспечение для анализа данных
- Программное обеспечение, использующее лицензию Apache
- Продукты больших данных
- Бесплатное программное обеспечение, написанное на C++.
- программное обеспечение 2014 года