Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Enkel och exakt prognos med AutoGluon-TimeSeries

AutoGluon-TimeSeries är det senaste tillägget till AutoGluon, som hjälper dig att enkelt bygga kraftfulla tidsserieprognosmodeller med så lite som tre rader kod.

Tidsserieprognoser är en vanlig uppgift inom ett brett spektrum av industrier såväl som vetenskapliga domäner. Att ha tillgång till tillförlitliga prognoser för utbud, efterfrågan eller kapacitet är avgörande för planering för företag. Tidsserieprognoser är dock ett svårt problem, särskilt när tusentals potentiellt relaterade tidsserier är tillgängliga, såsom försäljning i en stor katalog inom e-handel, eller kapacitet på hundratals operativa platser.

Enkla statistiska eller bedömningsbaserade prognosmetoder är ofta redan starka baslinjer som är svåra att förbättra med nya maskininlärningsmetoder (ML). Dessutom är tillämpningar av de senaste framstegen inom ML för prognoser varierande, med få metoder som t.ex DeepAR [1] eller Temporal Fusion Transformers [2] dyker upp som populära val. Dessa metoder är dock svåra att träna, trimma och implementera i produktionen, vilket kräver expertkunskap om ML och tidsserieanalys.

AutoML är ett snabbt växande ämne inom ML, med fokus på att automatisera vanliga uppgifter i ML-pipelines, inklusive funktionsförbearbetning, modellval, modellinställning, ensembling och implementering. AutoGluon-TimeSeries är det senaste tillskottet till AutoGluon, en av de ledande AutoML-lösningarna med öppen källkod, och bygger på AutoGluons kraftfulla ramverk för AutoML i prognosuppgifter. AutoGluon-TimeSeries designades för att bygga kraftfulla prognossystem med så lite som tre rader kod, vilket minskar utmaningarna med förbearbetning av funktioner, modellval, modelljustering och enkel implementering.

Med ett enkelt samtal till AutoGluon-TimeSeries TimeSeriesPredictor, AutoGluon följer en intuitiv prioritetsordning vid anpassning av modeller: från enkla naiva baslinjer och övergång till kraftfulla globala neurala nätverk och förstärkta trädbaserade metoder, allt inom den tidsbudget som anges av användaren. När relaterade tidsserier (tidsvarierande kovariater eller exogena variabler) eller objektmetadata (statiska funktioner) är tillgängliga, tar AutoGluon-TimeSeries in dem i prognosen. Biblioteket utnyttjar också Bayesiansk optimering för justering av hyperparameter, och når den bästa modellkonfigurationen genom att ställa in komplexa modeller. Slutligen kombinerar AutoGluon-TimeSeries det bästa av statistiska och ML-baserade metoder till en modellensemble optimerad för det aktuella problemet.

I det här inlägget visar vi upp AutoGluon-TimeSeries användarvänlighet för att snabbt bygga en kraftfull prognosmaskin.

Kom igång med AutoGluon-TimeSeries

För att börja måste du installera AutoGluon, vilket enkelt görs med pip på ett UNIX-skal:

pip install "autogluon>=0.6"

AutoGluon-TimeSeries introducerar TimeSeriesDataFrame klass för att arbeta med datauppsättningar som inkluderar flera relaterade tidsserier (kallas ibland en paneldatauppsättning). Dessa dataramar kan skapas från så kallade långformatsdataramar, som har tidsserie-ID och tidsstämplar ordnade i rader. Följande är ett sådant dataexempel, hämtat från M4-tävlingen [3]. Här, den item_id kolumnen anger den unika identifieraren för en enskild tidsserie, till exempel produkt-ID för daglig försäljningsdata för flera produkter. De target kolumnen är värdet av intresse som AutoGluon-TimeSeries lär sig att prognostisera. weekend är en extra tidsvarierande samvariat vi tagit fram för att markera om observationen var på helgen eller inte.

Vi kan enkelt ta fram en ny TimeSeriesDataFrame från denna datauppsättning med hjälp av from_data_frame konstruktör. Se följande Python-kod:

df = TimeSeriesDataFrame.from_data_frame(raw_data_frame)

Vissa tidsseriedata har icke-tidsvarierande funktioner (statiska funktioner eller objektmetadata) som kan användas för att träna en prognosmodell. Till exempel har M4-datauppsättningen en kategorivariabel för varje tidsserie. Dessa kan läggas till TimeSeriesDataFrame genom att ställa in static_features variabel med en ny dataram.

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Använd följande kod:

df.static_features = raw_static_features

Träna en TimeSeriesPredictor

Äntligen kan vi ringa TimeSeriesPredictor för att passa ett brett utbud av prognosmodeller för att bygga ett korrekt prognossystem. Se följande kod:

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

Här anger vi att TimeSeriesPredictor bör ta fram modeller för att prognostisera de kommande sju tidsperioderna och bedöma de bästa modellerna genom att använda genomsnittliga absolut skalade fel (MASE). Dessutom indikerar vi att den tidsvarierande samvariationen weekend är tillgänglig i datamängden. Vi kan nu passa prediktorobjektet på TimeSeriesDataFrame producerat tidigare:

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

Förutom att tillhandahålla träningsdata ber vi prediktorn att använda “medium_quality” förinställningar. AutoGluon-TimeSeries kommer med flera förinställningar för att välja deluppsättningar av modeller att överväga och hur mycket tid som ska läggas på att trimma dem, hantera avvägningen mellan träningshastighet och noggrannhet. Förutom förinställningar kan mer erfarna användare använda en hyperparameters argument för att exakt specificera komponentmodeller och vilka hyperparametrar som ska ställas in på dem. Vi anger också en tidsgräns på 1,800 XNUMX sekunder, varefter prediktorn slutar träna.

Under huven tränar AutoGluon-TimeSeries så många modeller som möjligt inom den angivna tidsramen, med start från naiva men kraftfulla baslinjer och arbetar mot mer komplexa prognosmakare baserade på förstärkta träd och neurala nätverksmodeller. Genom att ringa predictor.leaderboard(), kan vi se en lista över alla modeller som den har tränat och noggrannhetspoäng och träningstider för var och en. Observera att varje AutoGluon-TimeSeries-modell rapporterar sina fel i ett "högre är bättre"-format, vilket innebär att de flesta prognosfelmått multipliceras med -1 när de rapporteras. Se följande exempel:

              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

Prognos med en TimeSeriesPredictor

Slutligen kan vi använda prediktorn för att förutsäga alla tidsserier i en TimeSeriesDataFrame, 7 dagar in i framtiden. Observera att eftersom vi använde tidsvarierande kovariater som antas vara kända i framtiden, bör dessa också specificeras vid prediktionstidpunkten. Se följande kod:

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

Som standard tillhandahåller AutoGluon-TimeSeries både punktprognoser och probabilistiska (kvantila) prognoser för målvärdet. Probabilistiska prognoser är väsentliga i många planeringsuppgifter, och de kan användas för att flexibelt beräkna intervall, vilket möjliggör nedströmsuppgifter som inventering och kapacitetsplanering.

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Följande är ett exempel på en prognosplot som visar punktprognoser och förutsägelseintervall.

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Slutsats

AutoGluon-TimeSeries ger prognosmakare och dataforskare ett snabbt och enkelt sätt att bygga kraftfulla prognosmodeller. Utöver några av bibliotekets vanliga funktioner som visas i det här inlägget, har AutoGluon-TimeSeries en uppsättning sätt att konfigurera prognoser för avancerade användare. Prediktorer är också lätta att träna, distribuera och tjäna i skala med Amazon SageMaker, med hjälp av AutoGluon djupinlärning behållare.

För mer information om hur du använder AutoGluon, exempel, tutorials, samt andra uppgifter som AutoGluon hanterar som att lära sig på tabellform eller multimodal data, besök AutoGluon. För att komma igång med att använda AutoGluon-TimeSeries, kolla in vår snabbstartshandledning eller vår fördjupad handledning för en djupare titt på alla funktioner som biblioteket erbjuder. Följ AutoGluon på Twitter, och stjärna oss på GitHub för att få information om de senaste uppdateringarna.

För prognoser i stor skala med dedikerade beräkningar och arbetsflöden, support på företagsnivå, prognosförklaring och mer, kolla också in Amazon Prognos.

Referensprojekt

[1] Salinas, David, Valentin Flunkert, Jan Gasthaus och Tim Januschowski. "DeepAR: Probabilistiska prognoser med autoregressiva återkommande nätverk." International Journal of Forecasting 36. 3 (2020): 1181-1191.

[2] Lim, Bryan, Sercan O Arik, Nicolas Loeff och Tomas Pfister. "Temporal Fusion Transformers för tolkningsbar flerhorisonts tidsserieprognoser." International Journal of Forecasting 37.4 (2021): 1748-1764.

[3] Makridakis, Spyros, Evangelos Spiliotis och Vassilios Assimakopoulos. "M4-tävlingen: 100,000 61 tidsserier och XNUMX prognosmetoder." International Journal of Forecasting 36.1 (2020): 54-74.


Om författarna

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Caner Turkmen är en tillämpad forskare på Amazon Web Services, där han arbetar med problem i skärningspunkten mellan maskininlärning och prognoser, förutom att utveckla AutoGluon-TimeSeries. Innan han började på AWS arbetade han inom managementkonsultbranschen som datavetare och betjänade finans- och telekommunikationsindustrin i projekt över hela världen. Caners personliga forskningsintressen spänner över en rad ämnen, inklusive prognoser, kausal slutledning och AutoML.

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Oleksandr Shchur är en tillämpad forskare på Amazon Web Services, där han arbetar med tidsserieprognoser i AutoGluon-TimeSeries. Innan han började på AWS, avslutade han en doktorsexamen i maskininlärning vid Tekniska universitetet i München, Tyskland, och forskade om sannolikhetsmodeller för händelsedata. Hans forskningsintressen inkluderar maskininlärning för tidsdata och generativ modellering.

Enkel och exakt prognos med AutoGluon-TimeSeries PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Nick Erickson är Senior Applied Scientist på Amazon Web Services. Han tog sin magisterexamen i datavetenskap och teknik från University of Minnesota Twin Cities. Han är medförfattare och huvudutvecklare av AutoML-ramverket AutoGluon med öppen källkod. Med början som en personlig tävlings-ML-verktygssats 2018, utökade Nick kontinuerligt funktionerna hos AutoGluon och gick med i Amazon AI 2019 för att öppna källkod för projektet och arbeta heltid med att utveckla det senaste inom AutoML.

Tidsstämpel:

Mer från AWS maskininlärning