Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries

AutoGluon-TimeSeries to najnowszy dodatek do AutoGluon, który pomaga w łatwym budowaniu potężnych modeli prognozowania szeregów czasowych za pomocą zaledwie trzech linii kodu.

Prognozowanie szeregów czasowych jest powszechnym zadaniem w wielu gałęziach przemysłu, a także w dziedzinach naukowych. Dostęp do wiarygodnych prognoz podaży, popytu lub wydajności ma kluczowe znaczenie dla planowania dla firm. Jednak prognozowanie szeregów czasowych jest trudnym problemem, zwłaszcza gdy dostępne są tysiące potencjalnie powiązanych szeregów czasowych, takich jak sprzedaż w dużym katalogu w handlu elektronicznym lub wydajność w setkach oddziałów operacyjnych.

Proste statystyczne lub oparte na osądach metody prognozowania często już stanowią solidne punkty bazowe, które trudno ulepszyć za pomocą nowatorskich metod uczenia maszynowego (ML). Co więcej, zastosowania ostatnich postępów w ML do prognozowania są zróżnicowane, z kilkoma metodami, takimi jak GłębokiAR [1] lub Temporal Fusion Transformers [2] pojawiają się jako popularne wybory. Jednak metody te są trudne do nauczenia, dostrojenia i wdrożenia w środowisku produkcyjnym, co wymaga specjalistycznej wiedzy na temat uczenia maszynowego i analizy szeregów czasowych.

AutoML to szybko rozwijający się temat w ML, koncentrujący się na automatyzacji typowych zadań w potokach ML, w tym wstępnego przetwarzania funkcji, wyboru modelu, dostrajania modelu, składania i wdrażania. AutoGluon-TimeSeries to najnowszy dodatek do AutoGluon, jedno z wiodących rozwiązań AutoML typu open source i opiera się na potężnym środowisku AutoGluon dla AutoML w zadaniach prognozowania. AutoGluon-TimeSeries został zaprojektowany do tworzenia potężnych systemów prognostycznych z zaledwie trzema liniami kodu, łagodząc wyzwania związane z wstępnym przetwarzaniem cech, wyborem modeli, dostrajaniem modeli i łatwością wdrażania.

Za pomocą prostego połączenia z AutoGluon-TimeSeries TimeSeriesPredictor, AutoGluon przestrzega intuicyjnej kolejności priorytetów w dopasowywaniu modeli: zaczynając od prostych naiwnych linii bazowych i przechodząc do potężnej globalnej sieci neuronowej i udoskonalonych metod opartych na drzewach, a wszystko to w ramach budżetu czasowego określonego przez użytkownika. Gdy dostępne są powiązane szeregi czasowe (zmienne w czasie współzmienne lub zmienne egzogeniczne) lub metadane elementu (cechy statyczne), AutoGluon-TimeSeries uwzględnia je w prognozie. Biblioteka wykorzystuje również optymalizację bayesowską do dostrajania hiperparametrów, osiągając najlepszą konfigurację modelu poprzez dostrajanie złożonych modeli. Wreszcie, AutoGluon-TimeSeries łączy najlepsze metody statystyczne i oparte na ML w zespole modeli zoptymalizowanym pod kątem danego problemu.

W tym poście prezentujemy łatwość użycia AutoGluon-TimeSeries w szybkim budowaniu potężnego prognosty.

Zacznij korzystać z AutoGluon-TimeSeries

Aby rozpocząć, musisz zainstalować AutoGluon, co można łatwo zrobić za pomocą pip w powłoce UNIX:

pip install "autogluon>=0.6"

AutoGluon-TimeSeries wprowadza TimeSeriesDataFrame klasa do pracy z zestawami danych, które obejmują wiele powiązanych szeregów czasowych (czasami nazywanych zestawem danych panelowych). Te ramki danych można tworzyć z tak zwanych ramek danych o długim formacie, które mają identyfikatory szeregów czasowych i znaczniki czasu ułożone w wiersze. Poniżej znajduje się jeden z takich przykładów danych, zaczerpnięty z konkursu M4 [3]. Tutaj item_id kolumna określa unikalny identyfikator pojedynczego szeregu czasowego, na przykład identyfikator produktu dla dziennych danych sprzedaży wielu produktów. The target kolumna to interesująca wartość, którą AutoGluon-TimeSeries nauczy się prognozować. weekend jest dodatkową zmienną towarzyszącą zmienną w czasie, którą stworzyliśmy, aby zaznaczyć, czy obserwacja miała miejsce w weekend, czy nie.

Możemy łatwo wyprodukować nowy TimeSeriesDataFrame z tego zestawu danych za pomocą from_data_frame konstruktor. Zobacz następujący kod Pythona:

df = TimeSeriesDataFrame.from_data_frame(raw_data_frame)

Niektóre dane szeregów czasowych mają funkcje niezmienne w czasie (funkcje statyczne lub metadane elementu), których można użyć do uczenia modelu prognostycznego. Na przykład zestaw danych M4 zawiera zmienną kategorii dla każdego szeregu czasowego. Można je dodać do TimeSeriesDataFrame ustawiając static_features zmienną z nową ramką danych.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Użyj następującego kodu:

df.static_features = raw_static_features

Wytrenuj TimeSeriesPredictor

Wreszcie możemy nazwać tzw TimeSeriesPredictor dopasowanie szerokiej gamy modeli prognostycznych do zbudowania dokładnego systemu prognozowania. Zobacz następujący kod:

predictor = TimeSeriesPredictor(
    prediction_length=7,
    eval_metric="MASE",
    known_covariates_names=["weekend"],
)

Tutaj określamy, że TimeSeriesPredictor powinien tworzyć modele do prognozowania kolejnych siedmiu okresów i oceniać najlepsze modele za pomocą średniego bezwzględnego błędu skalowanego (MAZA). Ponadto wskazujemy, że zmienna towarzysząca zmienna w czasie weekend jest dostępny w zbiorze danych. Możemy teraz dopasować obiekt predyktora do TimeSeriesDataFrame produkowane wcześniej:

predictor.fit(df, presets="medium_quality", time_limit=1800)

Oprócz podania danych treningowych prosimy o użycie predyktora “medium_quality” presety. AutoGluon-TimeSeries zawiera wiele ustawień wstępnych, aby wybrać podzbiory modeli do rozważenia i określić, ile czasu należy poświęcić na ich dostrajanie, zarządzając kompromisem między szybkością treningu a dokładnością. Oprócz ustawień wstępnych, bardziej doświadczeni użytkownicy mogą korzystać z hyperparameters argument, aby precyzyjnie określić modele komponentów i jakie hiperparametry ustawić na nich. Określamy również limit czasu 1,800 sekund, po którym predyktor przestaje trenować.

Pod maską AutoGluon-TimeSeries trenuje jak najwięcej modeli w określonych ramach czasowych, zaczynając od naiwnych, ale potężnych linii bazowych i przechodząc do bardziej złożonych prognostów opartych na wzmocnionych drzewach i modelach sieci neuronowych. Poprzez dzwonienie predictor.leaderboard(), możemy zobaczyć listę wszystkich wyszkolonych modeli oraz wyniki dokładności i czasy szkolenia dla każdego z nich. Należy zauważyć, że każdy model AutoGluon-TimeSeries zgłasza swoje błędy w formacie „im więcej, tym lepiej”, co oznacza, że ​​większość miar błędów prognozowania jest mnożona przez -1, gdy są zgłaszane. Zobacz następujący przykład:

              model  score_val  pred_time_val  fit_time_marginal  fit_order
0  WeightedEnsemble  -0.612510      15.406334          48.428711          8
1  AutoGluonTabular  -0.654924       1.068694         104.208688          6
2            DeepAR  -0.673366       6.731659        1065.956648          7
3     SeasonalNaive  -1.035286       0.410615           0.000742          2
4               ETS  -1.073640       5.832542           0.000584          3
5             Theta  -1.107362       1.773439           0.000614          4
6             ARIMA  -3.006273       2.483140           0.000625          5
7             Naive  -3.427339      29.532215           0.000577          1

Prognoza z TimeSeriesPredictor

Na koniec możemy użyć predyktora do przewidywania wszystkich szeregów czasowych w a TimeSeriesDataFrame, 7 dni w przyszłość. Należy zauważyć, że ponieważ użyliśmy zmiennych towarzyszących zmieniających się w czasie, co do których zakłada się, że będą znane w przyszłości, należy je również określić w czasie przewidywania. Zobacz następujący kod:

predictions = predictor.predict(
	df,
	known_covariates=future_known_covariates
)

Domyślnie AutoGluon-TimeSeries zapewnia zarówno prognozy punktowe, jak i probabilistyczne (kwantylowe) prognozy wartości docelowej. Prognozy probabilistyczne są niezbędne w wielu zadaniach związanych z planowaniem i można ich używać do elastycznego obliczania przedziałów czasowych, umożliwiając realizację dalszych zadań, takich jak inwentaryzacja i planowanie wydajności.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Poniżej znajduje się przykładowy wykres prognozy przedstawiający prognozy punktowe i przedziały prognoz.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wnioski

AutoGluon-TimeSeries zapewnia prognostom i analitykom danych szybki i łatwy sposób budowania potężnych modeli prognostycznych. Oprócz niektórych często używanych funkcji biblioteki przedstawionych w tym poście, AutoGluon-TimeSeries oferuje zestaw sposobów konfigurowania prognoz dla zaawansowanych użytkowników. Prognozy można również łatwo szkolić, wdrażać i obsługiwać na dużą skalę Amazon Sage Maker, używając głębokiego uczenia AutoGluon Pojemniki.

Aby uzyskać więcej informacji na temat korzystania z AutoGluon, przykładów, samouczków, a także innych zadań, którymi zajmuje się AutoGluon, takich jak uczenie się na danych tabelarycznych lub multimodalnych, odwiedź AutoGluon. Aby rozpocząć korzystanie z AutoGluon-TimeSeries, sprawdź nasze samouczek szybkiego startu lub naszych dogłębny samouczek aby uzyskać głębsze spojrzenie na wszystkie funkcje oferowane przez bibliotekę. Śledź AutoGluon na Twitteri oznacz nas gwiazdą GitHub być informowanym o najnowszych aktualizacjach.

Aby uzyskać prognozy na dużą skalę z dedykowanymi obliczeniami i przepływami pracy, wsparciem na poziomie przedsiębiorstwa, możliwością wyjaśnienia prognoz i nie tylko, sprawdź również Prognoza Amazon.

Referencje

[1] Salinas, David, Valentin Flunkert, Jan Gasthaus i Tim Januschowski. „DeepAR: Probabilistyczne prognozowanie z autoregresyjnymi sieciami rekurencyjnymi”. Międzynarodowy Dziennik Prognoz 36. 3 (2020): 1181-1191.

[2] Lim, Bryan, Sercan O Arik, Nicolas Loeff i Tomas Pfister. „Temporal Fusion Transformers do interpretowalnego wielohoryzontowego prognozowania szeregów czasowych”. Międzynarodowy Dziennik Prognoz 37.4 (2021): 1748-1764.

[3] Makridakis, Spyros, Evangelos Spiliotis i Vassilios Assimakopoulos. „Konkurs M4: 100,000 61 szeregów czasowych i XNUMX metod prognozowania”. Międzynarodowy Dziennik Prognoz 36.1 (2020): 54-74.


O autorach

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Caner Turkmenów jest Applied Scientist w Amazon Web Services, gdzie pracuje nad problemami na styku uczenia maszynowego i prognozowania, oprócz rozwijania AutoGluon-TimeSeries. Przed dołączeniem do AWS pracował w branży konsultingowej jako analityk danych, obsługując usługi finansowe i branżę telekomunikacyjną przy projektach na całym świecie. Osobiste zainteresowania badawcze Canera obejmują szereg tematów, w tym prognozowanie, wnioskowanie przyczynowe i AutoML.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Aleksandra Szczura jest Applied Scientist w Amazon Web Services, gdzie pracuje nad prognozowaniem szeregów czasowych w AutoGluon-TimeSeries. Przed dołączeniem do AWS ukończył studia doktoranckie w dziedzinie uczenia maszynowego na Uniwersytecie Technicznym w Monachium w Niemczech, prowadząc badania nad modelami probabilistycznymi dla danych o zdarzeniach. Jego zainteresowania badawcze obejmują uczenie maszynowe dla danych czasowych i modelowanie generatywne.

Łatwe i dokładne prognozowanie dzięki AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Nicka Ericksona jest starszym pracownikiem naukowym w Amazon Web Services. Uzyskał tytuł magistra informatyki i inżynierii na University of Minnesota Twin Cities. Jest współautorem i głównym programistą otwartej platformy AutoML AutoGluon. Zaczynając jako osobisty zestaw narzędzi ML do zawodów w 2018 roku, Nick stale rozwijał możliwości AutoGluon i dołączył do Amazon AI w 2019 roku, aby otworzyć projekt i pracować w pełnym wymiarze godzin nad rozwojem najnowocześniejszej technologii AutoML.

Znak czasu:

Więcej z Uczenie maszynowe AWS