XGBoost (eXtreme Gradient Boosting) - це алгоритм з відкритим вихідним кодом, який реалізує дерева градієнтного бустінгу з додатковим покращенням для кращої продуктивності та швидкості. Алгоритм XGBoost був створений Ченом та іншими[1] у 2016 році. Він широко використовується в різних сценаріях інтелектуального аналізу даних та змаганнях алгоритмів. Алгоритм використовує свої основні переваги в точності, гнучкості та автоматичній обробці пропущених значень.
Швидка здатність алгоритму робити точні прогнози робить цю модель основною моделлю для вирішення багатьох задач у галузі Machine Learning.
Найпоширенішими випадками застосування XGBoost є класифікаційне прогнозування, наприклад, виявлення шахрайства, або регресійне прогнозування, наприклад, прогнозування цін на житло. Однак розширення алгоритму XGBoost для прогнозування даних часових рядів також можливе.
Прогнозування в науці про дані та машинному навчанні - це метод, який використовується для передбачення майбутніх числових значень на основі історичних даних, зібраних протягом певного часу через регулярні або нерегулярні інтервали. На відміну від звичайних навчальних даних для машинного навчання, де кожне спостереження не залежить від іншого, дані для прогнозування часових рядів повинні бути розташовані в послідовному порядку і пов'язані з кожною точкою даних. Наприклад, дані часових рядів можуть включати щомісячні запаси, щотижневу погоду, щоденні продажі тощо.
Почнемо з того, що таке Gradient Boosting, Gradient Boosting - це метод машинного навчання як лінійна адитивна модель, що складається з ансамблю
слабких моделей передбачення[2]. Для отримання повної моделі F, потрібно виконати M кроків. Модель F_m не буде оптимізована безпосередньо на кроці m+1. В іншому випадку базова модель hm+1 (x) буде навчена і для обчислювання залишкового значення y-Fm для моделі прогнозування на кроці m+1, що наближається до значення y.
Тому обчислення цілі зводиться до того, щоб знайти hm+1 (x)=Fm+1-Fm. Як правило, від'ємний градієнт цільової функції використовується як залишок для вивчення базової моделі h(x).
XGBoost - це реалізація градієнтного підсилення, яка об'єднує декілька слабких класифікаторів в один сильний класифікатор лінійним способом. XGBoost підтримує як CART, так і лінійні класифікатори як базові класифікатори, і виконує розкладання Тейлора другого порядку на функцію вартості, що виражає більш повну інформацію. З точки зору швидкості роботи, XGBoost підтримує паралельний вибір точок розбиття, а навчання моделі займає набагато менше часу. Основна ідея XGBoost полягає у безперервному додаванні слабких дерев з різною вагою до множини. Дерева у множині повинні максимально наближатися до залишків попереднього прогнозу, що виражається наступним чином:
У формулі вище ŷ є прогнозованим значенням, F це множина, що включає всі дерева регресії, fk - одне з дерев регресії, K - кількість дерев регресії. Очікується, що прогнозоване значення ŷi буде якомога ближчим до істинного значення yi, наскільки це можливо, і при цьому не втрачаючи своїх загальних можливостей.
Gradient Boosting в основному спрямований на покращення продуктивності моделей машинного навчання, і за допомогою нього з використанням XGBoost можливо прискорити цю процедуру, а також отримати кращі результати. Коли мова йде про сферу аналізу та прогнозування часових рядів, то використовуються традиційні моделі, такі як ARIMA[3] (autoregressive integrated moving average), де основна увага приділяється регресійному аналізу, і якщо можливо виконати цю регресію за допомогою такого програмного забезпечення та техніки, то також можливо досягти найсучаснішої продуктивності в моделюванні часових рядів. Ансамбль слабких моделей машинного навчання з регуляризованим градієнтним бустингом може допомогти покращити результати в кожному розділі науки про дані. Таким розділом також можуть бути часові ряди.
Висновки. Загалом для прогнозування часових рядів використовують більш прості моделі такі як ARIMA, FB Prophet, і т.д. Хоч XGBoost є складним у роботі і розумінні алгоритмом, але його переваги можна використати для покращення швидкості тренування та роботи моделі для прогнозування часових рядів.
Список використаних джерел
1. Chen T., Guestrin C. XGBoost: A Scalable Tree Boosting System, San Francisco California USA. New York, NY, USA, 2016. – 785 P.
2. Alhomsi M., Ahmed H. Forecasting of ExchangeRate: Autoregressive modelsvs. XGBoost : thesis. 2020. – 40 P.
3. Arumugam V., Natarajan V. Time Series Modeling and Forecasting Using Autoregressive Integrated Moving Average and Seasonal Autoregressive Integrated Moving Average Models. Instrumentation Mesure Métrologie. 2023. – PP.161-168.
|