xgboost jako narzĘdzie prognozowania szeregÓw...
TRANSCRIPT
XGBOOST JAKO NARZĘDZIE
PROGNOZOWANIA
SZEREGÓW CZASOWYCH
Filip Wójcik
Objectivity Digital Transformation Specialists
Doktorant na Uniwersytecie Ekonomicznym we Wrocławiu
Czym jest xgbost?01
Rossmann - konkurs/legenda02
Prognozowanie – trudności w szkoleniu03
Przygotowanie danych04
Schemat treningowy05
Porównanie z innymi modelami06
Analiza wyników07
Inne zbiory danych08
Podsumowanie09
Agenda
Czym jest Xgboost?
• Przeznaczony głównie do
klasyfikacji i regresji
• Optymalizuje wiele różnych
funkcji scoringowych i błędu
• Obsługuje funkcje docelowe:
➢ Softmax
➢ Logit
➢ Liniowa
➢ Poissona
➢ Gamma
Algorytm klasyfikacyjno-regresyjny
• Bazowym estymatorem są
drzewa decyzyjne
• Algorytm złożony – ensemble
• Algorytm typu boosting –
zwiększenie wagi błędnych
przykładów
• Każde kolejne drzewo uczy się
na błędach poprzedniego
Oparty na drzewach
• Drzewa są zależne od siebie
• Zrównoleglenie następuje na
poziomie pojedynczego
drzewa – przy budowaniu
kolejnych węzłów
• XGBoost używa
skompresowanego formatu
danych, dzięki czemu
oszczędzana jest pamięć
Dobrze zrównoleglony
Czym jest Xgboost?
Źródło: http://xgboost.readthedocs.io/en/latest/model.html#tree-ensemble
𝑙 𝑥1, 𝑥2 − funkcja kosztu
𝑓𝑖 𝑥 − funkcja budująca i − te drzewo
Czym jest Xgboost?
Źródło: http://xgboost.readthedocs.io/en/latest/model.html#tree-ensemble
Rossmann – konkurs legenda
• Konkurs Kaggle.com z 2016r., w którym zadaniem było prognozowanie obrotu na
podstawie wartości historycznych i danych z makrootocznia sklepów
• Udział wzięły 3303 drużyny
• Znacząca większość kerneli implementowała algorytm Xgboost
• Metryka ewaluacyjna – RMSPE (and. Root mean squared percentage error)
RMSPE =1
𝑛
𝑖=1
𝑛𝑦𝑖 − ෝ𝑦𝑖𝑦𝑖
2
• Zwycięzca osiągnął wynik ok. 10% błędu
• Typowy problem prognozowania szeregów czasowych, a nie klasyfikacji czy regresji
Prognozowanie – trudności w szkoleniu• Dwa rodzaje zmiennych:
➢ Zmienne „statyczne” – opisujące mikrootocznie
sklepu
➢ Szeregi czasowe – wielkość sprzedaży i ilość klientów
• Problem szkolenia modelu dla szeregów czasowych:
➢ Standardowa walidacja krzyżowa nie zdaje egzaminu
➢ Losowy wybór obserwacji zaburza chronologię
➢ OOB error z tego samego powodu nie musi być najlepszym
estymatorem błędu rzeczywistego
• Duża wariancja predykcji i rozbieżność walidacji lokalnej i na
zbiorze walidacyjnym
• Konieczność zachowania zależności czasowych i nauczenia
modelu ich „rozumienia”
➢ Zależności sezonowe (trendy miesięczne i tygodniowe)
➢ Zależności autokorelacyjne
≠
Przygotowanie danych
Wyznaczenie numerycznych zmiennych czasu:
• Numer dnia tygodnia
• Numer miesiąca
• Numer kwartału
Day: 19, month: 3, year: 2015, Q: 1 𝝁𝒒𝟐 = 𝟑𝟖𝟑𝟓, 𝝈𝒒𝟐 = 𝟏𝟖𝟎𝟓Wyznaczenie indeksów sezonowych:
• Średnie i odchylenia standardowe
• Wyliczane dla dni tygodnia /
kwartałów / miesięcy / półroczy /
weekendów
Wyznaczenie indeksów pomocniczych:
• Średnie ruchome różnych rzędów
• Liczone względem różnych okresów
(dni tygodnia/kwartałów/miesięcy)
Przygotowanie danych
Sklep Data Dzień tyg. Miesiąc Kwartał Typ sklepu Promocja Asortyment Sprzedaż 𝜇𝑠𝑝𝑟𝑧𝑒𝑑𝑎ż𝑑𝑧𝑖𝑒ń 𝑡𝑦𝑔.
𝜇𝑠𝑝𝑟𝑧𝑒𝑑𝑎ż𝑚𝑖𝑒𝑠𝑖ą𝑐
𝜇𝑠𝑝𝑟𝑧𝑒𝑑𝑎ż𝑘𝑤𝑎𝑟𝑡𝑎ł
1 10-01-2016 7 1 1 A TAK B 1536 954 1100 950
2 15-10-2016 6 10 4 C NIE A 764 1005 1256 1954
Znaczniki czasu Zmienne statyczne Indeksy sezonowey
Schemat treningowy
• Klasyczna walidacja krzyżowa nie sprawdziła się ze
względu na zmienność danych w czasie
• Zastosowano metodologię charakterystyczną dla
szkolenia modeli prognostycznych ARIMA, etc.
➢ Stopniowe przesuwanie okna prognozy i danych
treningowych
➢ Szkolenie modelu na coraz większym wolumenie
• Dodatkowo, XGBoost wewnętrznie wyliczał OOB-
score, oparty na próbkowaniu bootstrapowym
• Zbiór walidacyjny w konkursie obejmował dwa ostatnie
miesiące udostępnionego wolumenu
Źródło: https://robjhyndman.com/hyndsight/tscv/
CEL BADAŃ I ICH ZAŁOŻENIA
Porównanie z innymi modelami
Analiza porównawcza modeli prognozowania wykorzystujących
zmienne egzogeniczne
Problem badawczy
• Porównanie w sposób systematyczny i dokładny prognoz modeli
„klasycznych” oraz XGBoost
• Czy zachodzi statystycznie istotna różnica pomiędzy trafnością
XGBoost a pozostałych modeli?
Porównanie trafności predykcji
• W przypadku modeli „klasycznych” – interpretacja parametrów
(średnich ruchomych, autokorelacji, różnicowania, etc.)
• W przypadku XGBoost – istotność atrybutów
Analiza istotności współczynników
Porównanie z innymi modelamiWYBÓR MODELI KLASYCZNYCH
Modele klasyczne
SARIMAX
Sezonowość
Średnie ruchome
Zmienne egzogeniczne
Postać parametryczna i
interpretowalność
HOLT-WINTERS
Sezonowość
Wygładzanie wykładnicze
XGBoost
?
?
?
Porównanie z innymi modelamiSCHEMAT TRENIGOWY MODELI
Jeden model per sklep
Dla każdego sklepu wyszkolono
osobny model
Automatyczny dobór
parametrów
Parametry dla modeli wybierane były w sposób
automatyczny, z użyciem funkcji
optymalizacyjnych
Interpolacja obserwacji
brakujących
W przypadku obserwacji brakujących – uzupełniono
je za pomocą interpolacji wielomianowej
Jeden model dla wszystkich sklepów
Badania eksperymentalne pokazały, że zmienne czasowe +
zmienne egzogeniczne zapewniają dostateczny poziom
generalizacji. Jeden model dla wszystkich sklepów jest
wystarczający
Drzewa regresji
Estymatorem były drzewa regresji liniowej, a funkcją błędu -
RMSPE
Walidacja szeregu czasowego
Model trenowano w oparciu o kroczącą walidację szeregu
czasowego + 1000 dodatkowych instancji wybranych w
każdej iteracji
MODELE KLASYCZNE XGBOOST
Analiza wynikówMetryka(mediana)
SARIMAX Holt-Winters XGBoost
Wsp.
Theila0.061 0.059 0.1364
Wsp. 𝑅2 0.838 0.54 0.92
RMSPE
(walidacja)0.17 0.18 0.13
RMSPE
(oficjalny)0.16 0.367 0.121
Modele
Różnica
średnich
RMSPE
Przedział
ufności od
Przedział
ufności doP-wartość
XGBoost -
SARIMAX-0.126 -0.141 -0.111 << 0.01
XGBoost - Holt-
Winters-0.218 -0.235 -0.200 << 0.01
Analiza wyników
0,00% 5,00% 10,00% 15,00% 20,00% 25,00% 30,00% 35,00%
CompetitionDistance
Promo
Store
meanSalesDow
CompetitionOpenSinceMonth
CompetitionOpenSinceYear
day
meanSalesMonth
Promo2SinceYear
Promo2SinceWeek
DayOfWeek
meanCustDow
month
StoreType
meanCustMonth
Promo2
Assortment
PromoInterval
year
meanSalesQ
meanCustQ
SchoolHoliday
quarter
Istotność atryubutów
Gain Cover Frequency
Analiza wyników
01XGBoost – lepsze wynikiWartości wszystkich metryk osiągają lepsze
wartości dla algorytmu XGBoost 04Istotność atrybutów – znaczniki czasuWśród pierwszych 15 najważniejszych atrybutów,
znalazły się znaczniki czasu – dzień, miesiąc, rok.
XGBoost był w stanie zidentyfikować wpływ
sezonowości
02Mniejsza wariancjaPredykcje algorytmu XGBoost są stabilniejsze
od pozostałych modeli – odznaczają się dużo
mniejsza wariancją
05Istotność atrybutów – indeksy sezonoweWśród pierwszych 15 najważniejszych atrybutów, znalazły
się indeksy sezonowe, takie jak średnia sprzedaż w dniu
tygodnia czy miesiącu
03Krótszy czas działaniaSzkolenie jednego modelu globalnie, dla
wszystkich sklepów, zajmuje znacznie mniej
czasu niż szkolenie 1115 modeli SARIMAX lub
Holta-WIntersa
06Istotność atrybutów – zmienne statyczneWśród pierwszych 15 najważniejszych atrybutów znalazły
się także zmienne statyczne – egzogeniczne – opisujące
charakterystykę sklepów
Inne zbiory danych
RMSE MAE RMSPE
XGB 0.146 0.123 1.321
ARIMA 0.330 0.206 2.654
RMSE MAE RMSPE
XGB 0.002 0.002 0.01
ARIMA 0.386 0.318 0.391
PodsumowanieWstępne wyniki badań zdają się wskazywać, że XGBoost dobrze
sprawdza się, jako narzędzie prognozowania – zarówno w typowych
szeregach czasowych, jak i w przypadku danych o charakterze
mieszanym.
Na wszystkich testowanych zbiorach danych, predykcje XGBoost
odznaczają się niską wariancją i są stabilne.
Niska wariancja
Model jest w stanie rozpoznawać trendy i wahania sezonowe, a
istotność tych atrybutów potwierdza manualna analiza.
Identyfikacja trendów i sezonowości
Model potrafi jednocześnie obsługiwać zmienne o charakterze
indeksów czasowych oraz statycznych zmiennych egzogenicznych
Obsługa zmiennych statycznych
Publikacje
Chen, T. i Guestrin, C. (2016) „XGBoost: A scalable tree boosting system”, w Proceedings of the 22nd ACM
SIGKDD International Conference on Knowledge Discovery and Data Mining - KDD ’16. New York, USA:
ACM Press, s. 785–794
Ghosh, R. i Purkayastha, P. (2017) „Forecasting profitability in equity trades using random forest, support
vector machine and xgboost”, w 10th International Conference on Recent Trades in Engineering Science and
Management, s. 473–486.
Gumus, M. i Kiran, M. S. (2017) „Crude oil price forecasting using XGBoost”, w 2017 International
Conference on Computer Science and Engineering (UBMK). IEEE, s. 1100–1103.
Gurnani, M. i in. (2017) „Forecasting of sales by using fusion of machine learning techniques”, w 2017
International Conference on Data Management, Analytics and Innovation (ICDMAI). IEEE, s. 93–101
DZIĘKUJĘ ZA UWAGĘ