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
Agenda 01 02 03 Czym jest xgbost? Rossmann - konkurs/legenda Prognozowanie trudności w szkoleniu 04 Przygotowanie danych 05 Schemat treningowy 06 Porównanie z innymi modelami 07 Analiza wyników 08 Inne zbiory danych 09 Podsumowanie
Czym jest Xgboost? Algorytm klasyfikacyjno-regresyjny 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 Oparty na drzewach 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 Dobrze zrównoleglony 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ęć
Czym jest Xgboost? l x 1, x 2 funkcja kosztu f i x funkcja budująca i te drzewo Źródło: http://xgboost.readthedocs.io/en/latest/model.html#tree-ensemble
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 = n 1 n i=1 y i y i y i 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 Day: 19, month: 3, year: 2015, Q: 1 Wyznaczenie numerycznych zmiennych czasu: Numer dnia tygodnia Numer miesiąca Numer kwartału μ q2 = 3835, σ q2 = 1805 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 Znaczniki czasu Zmienne statyczne y Indeksy sezonowe dzień tyg. Sklep Data Dzień tyg. Miesiąc Kwartał Typ sklepu Promocja Asortyment Sprzedaż μ sprzedaż miesiąc μ sprzedaż kwartał μ 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
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ł OOBscore, 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/
Porównanie z innymi modelami CEL BADAŃ I ICH ZAŁOŻENIA Problem badawczy Analiza porównawcza modeli prognozowania wykorzystujących zmienne egzogeniczne Porównanie trafności predykcji 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? Analiza istotności współczynników W przypadku modeli klasycznych interpretacja parametrów (średnich ruchomych, autokorelacji, różnicowania, etc.) W przypadku XGBoost istotność atrybutów
Porównanie z innymi modelami WYBÓR MODELI KLASYCZNYCH Sezonowość SARIMAX Średnie ruchome Zmienne egzogeniczne?? Modele klasyczne Postać parametryczna i interpretowalność XGBoost HOLT-WINTERS Sezonowość Wygładzanie wykładnicze?
Porównanie z innymi modelami SCHEMAT TRENIGOWY MODELI MODELE KLASYCZNE XGBOOST 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 Walidacja szeregu czasowego Model trenowano w oparciu o kroczącą walidację szeregu czasowego + 1000 dodatkowych instancji wybranych w każdej iteracji Drzewa regresji Estymatorem były drzewa regresji liniowej, a funkcją błędu - RMSPE
Analiza wyników Metryka (mediana) Wsp. Theila SARIMAX Holt-Winters XGBoost 0.061 0.059 0.1364 Wsp. R 2 0.838 0.54 0.92 RMSPE (walidacja) RMSPE (oficjalny) 0.17 0.18 0.13 0.16 0.367 0.121 Modele XGBoost - SARIMAX XGBoost - Holt- Winters Różnica średnich RMSPE Przedział ufności od Przedział ufności do P-wartość -0.126-0.141-0.111 << 0.01-0.218-0.235-0.200 << 0.01
CompetitionDistance Promo Store meansalesdow CompetitionOpenSinceMonth CompetitionOpenSinceYear day meansalesmonth Promo2SinceYear Promo2SinceWeek DayOfWeek meancustdow month StoreType meancustmonth Promo2 Assortment PromoInterval year meansalesq meancustq SchoolHoliday quarter Analiza wyników Istotność atryubutów Gain Cover Frequency 0,00% 5,00% 10,00% 15,00% 20,00% 25,00% 30,00% 35,00%
Analiza wyników 01 02 XGBoost lepsze wyniki Wartości wszystkich metryk osiągają lepsze wartości dla algorytmu XGBoost Mniejsza wariancja Predykcje algorytmu XGBoost są stabilniejsze od pozostałych modeli odznaczają się dużo mniejsza wariancją 04 Istotność atrybutów znaczniki czasu Wś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 05 Istotność atrybutów indeksy sezonowe Wśród pierwszych 15 najważniejszych atrybutów, znalazły się indeksy sezonowe, takie jak średnia sprzedaż w dniu tygodnia czy miesiącu 03 Krótszy czas działania Szkolenie jednego modelu globalnie, dla wszystkich sklepów, zajmuje znacznie mniej czasu niż szkolenie 1115 modeli SARIMAX lub Holta-WIntersa 06 Istotność atrybutów zmienne statyczne Wś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
Wstę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. Niska wariancja Na wszystkich testowanych zbiorach danych, predykcje XGBoost odznaczają się niską wariancją i są stabilne. Podsumowanie Identyfikacja trendów i sezonowości Model jest w stanie rozpoznawać trendy i wahania sezonowe, a istotność tych atrybutów potwierdza manualna analiza. Obsługa zmiennych statycznych Model potrafi jednocześnie obsługiwać zmienne o charakterze indeksów czasowych oraz statycznych zmiennych egzogenicznych
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Ę