В последнее время эта библиотека приобрела большую популярность и привлекла внимание как выбор многих команд-победителей соревнований по машинному обучению
.
Содержание
История
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:
Вход: обучающее множество
, дифференцируемая функция потерь
, число слабых обучающихся
и скорость обучения
.
Алгоритм:
Инициализировать модель постоянным значением:
Для
m
= от 1 до
M
:
Вычислите "градиенты" и "гессианы":
Подогнать базового/слабого обучающегося, используя обучающее множество
, решив следующую оптимизационную задачу:
Обновление модели:
Результат:
Награды
Премия
(2016)
Премия High Energy Physics meets Machine Learning award (HEP meets ML)
(2016)
Примечания
(неопр.)
. Дата обращения: 17 апреля 2022.
1 апреля 2021 года.
(неопр.)
. Дата обращения: 1 августа 2016.
23 августа 2017 года.
(неопр.)
. Дата обращения: 1 августа 2016.
26 октября 2018 года.
(неопр.)
. Дата обращения: 1 августа 2016. Архивировано из
18 августа 2016 года.
(неопр.)
. Дата обращения: 9 февраля 2020.
6 октября 2021 года.
(неопр.)
. Дата обращения: 1 августа 2016.
8 мая 2018 года.
(неопр.)
. Дата обращения: 1 августа 2016.
8 мая 2018 года.
↑
(неопр.)
. Дата обращения: 1 августа 2016.
24 августа 2017 года.
(неопр.)
. Дата обращения: 1 августа 2016. Архивировано из
7 августа 2016 года.
(неопр.)
. Дата обращения: 1 августа 2016.
11 июня 2018 года.
(неопр.)
. Дата обращения: 1 августа 2016.
(неопр.)
. Дата обращения: 1 августа 2019.
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=
(
справка
)
Sagi, Omer; Rokach, Lior (2021). "Approximating XGBoost with an interpretable decision tree".
Information Sciences
.
572
(2021): 522-542.
doi
:
.
Gandhi, Rohith
(англ.)
.
Medium
(24 мая 2019). Дата обращения: 4 января 2020.
31 июля 2022 года.
(англ.)
.
Towards Data Science
(14 мая 2017). Дата обращения: 4 января 2020. Архивировано из
6 апреля 2022 года.
(амер. англ.)
.
Synced
(22 октября 2017). Дата обращения: 4 января 2020.
23 августа 2022 года.
(неопр.)
. Дата обращения: 1 августа 2016.
31 июля 2017 года.
(неопр.)
. Дата обращения: 1 августа 2016.
8 мая 2018 года.