xgboost jako narzĘdzie prognozowania szeregÓw...

Post on 28-Feb-2019

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

XGBOOST JAKO NARZĘDZIE

PROGNOZOWANIA

SZEREGÓW CZASOWYCH

Filip Wójcik

Objectivity Digital Transformation Specialists

Doktorant na Uniwersytecie Ekonomicznym we Wrocławiu

filip.wojcik@outlook.com

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Ę

top related