Multivariatno napovedovanje časovnih vrst z BQML - KDnuggets

Multivariatno napovedovanje časovnih vrst z BQML – KDnuggets

Izvorno vozlišče: 2796796

Multivariatno napovedovanje časovnih vrst z BQML
Slika iz Pexels
 

Prejšnjo zimo sem imel predstavitev o "Bolj predvidljiv model časovne vrste z BQML'ob GDG DevFest Taškent 2022 v Taškentu, glavnem mestu Uzbekistana.

Nekaj ​​materiala in kode sem nameraval deliti po DevFestu, ki sem ga uporabil v predstavitvi, vendar je čas minil in v BQML so bile izdane nove funkcije, ki prekrivajo nekatere vsebine.

Zato bom namesto tega na kratko omenil nove funkcije in nekatere stvari, ki so še vedno veljavne.

Podatki časovnih vrst uporablja veliko organizacij za različne namene in pomembno je omeniti, da "napovedna analitikas« govori o »prihodnosti« v času. Napovedna analitika časovnih vrst je bila uporabljena kratkoročno, srednjeročno in dolgoročno in čeprav ima veliko netočnosti in tveganj, se tudi vztrajno izboljšuje.

Ker se zdi »napovedovanje« tako uporabno, bi vas morda zamikalo, da bi uporabili model napovedovanja časovne vrste, če imate podatke o časovni vrsti. Toda modeli napovedovanja časovnih vrst so običajno računsko intenzivni, in če imate veliko podatkov, bo računsko zahtevnejše. Zato ga je okorno in težko obdelati, naložiti v analitično okolje in analizirati

Če uporabljate Google BigQuery za upravljanje podatkov, lahko uporabite BQML (BigQuery ML) za uporabo algoritmov strojnega učenja za vaše podatke na preprost, enostaven in hiter način. Veliko ljudi uporablja BigQuery za obdelavo številnih podatkov in veliko teh podatkov je pogosto podatkov časovnih vrst. in BQML podpira tudi modele časovnih vrst.

Osnova modela časovnih vrst, ki ga trenutno podpira BQML, je Avtoregresivno integrirano drseče povprečje (ARIMA) model. Model ARIMA napoveduje z uporabo samo obstoječih podatkov o časovnih vrstah in je znano, da ima dobro kratkoročno napovedovanje, in ker združuje AR in MA, je priljubljen model, ki lahko pokriva široko paleto modelov časovnih vrst.

Vendar je ta model na splošno računsko zahteven in ker uporablja samo podatke časovnih vrst z normalnostjo, ga je težko uporabiti v primerih s trendi ali sezonskostjo. zato ARIMA_PLUS v BQML vključuje več dodatnih funkcij kot možnosti. Svojemu modelu lahko dodate razčlenitev časovnih vrst, dejavnike sezonskosti, skoke in padce, spremembe koeficientov in drugo, ali pa jih pregledate ločeno in ročno prilagodite model. Osebno mi je všeč tudi dejstvo, da lahko prilagodite periodičnost tako, da samodejno vključite možnosti počitnic, kar je ena od prednosti uporabe platforme, ki ne zahteva ročnega dodajanja informacij, povezanih z datumi.

 

Multivariatno napovedovanje časovnih vrst z BQML
Struktura ARIMA_PLUS (od Priročnik BQML)
 

Lahko se sklicujete na to Stran za več informacij.

Vendar ko gre za aplikacije v resničnem svetu, napovedovanje časovnih vrst ni tako preprosto. Seveda smo z ARIMA_PLUS lahko prepoznali več ciklov in dodali posege v več časovnih vrst, vendar je veliko zunanjih dejavnikov, povezanih s podatki o časovnih vrstah, in le zelo malo dogodkov se zgodi ločeno. V podatkih časovne vrste je težko najti stacionarnost.

V prvotni predstavitvi sem si ogledal, kako ravnati s temi podatki o časovnih serijah iz resničnega sveta za izdelavo modela napovedovanja – razčleniti te časovne vrste, počistite razčlenjene podatke, jih uvozite v Python in nato prepletite z drugimi spremenljivkami, da ustvarite multivariatno funkcijo časovne vrste, ocenite vzročnost in jo vključite v model napovedi ter ocenite stopnjo, do katere se učinek spreminja s spremembami dogodkov.

In v zadnjih nekaj mesecih, nova funkcija za ustvarjanje funkcij večvariantnega časovnega niza z zunanjimi spremenljivkami(ARIMA_PLUS_XREG, XREG spodaj) je postala popolna funkcija v BQML.

Lahko preberete vse o tem tukaj(v predogledu je od julija 2023, vendar predvidevam, da bo na voljo pozneje letos).

Se prijavim uradna vadnica da vidimo, kako se primerja s tradicionalnim univariantnim modelom časovne vrste, in lahko vidimo, kako deluje.

Koraki so enaki kot v vadnici, zato jih ne bom podvajal, toda tukaj sta dva modela, ki sem jih ustvaril. Najprej sem ustvaril tradicionalno ARIMA_PLUS model in nato an XREG model z uporabo istih podatkov, vendar z dodajanjem temperature in hitrosti vetra v tistem trenutku.

# ARIMA_PLUS

# ARIMA_PLUS
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_plus_model
OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')
#ARIMA_PLUS_XREG
CREATE OR REPLACE MODEL test_dt_us.seattle_pm25_xreg_model OPTIONS ( MODEL_TYPE = 'ARIMA_PLUS_XREG', time_series_timestamp_col = 'date', time_series_data_col = 'pm25') AS
SELECT date, pm25, temperature, wind_speed
FROM test_dt_us.seattle_air_quality_daily
WHERE date BETWEEN DATE('2012-01-01') AND DATE('2020-12-31')

 

Model, ki uporablja te več podatkov, bi bil videti nekako takole

 

Multivariatno napovedovanje časovnih vrst z BQML
Struktura ARIMA_PLUS_XREG (od Priročnik BQML)
 

Dva modela sta primerjana z ML.Evaluate.

SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_plus_model, ( SELECT date, pm25 FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ))
SELECT * FROM ML.EVALUATE ( MODEL test_dt_us.seattle_pm25_xreg_model, ( SELECT date, pm25, temperature, wind_speed FROM test_dt_us.seattle_air_quality_daily WHERE date > DATE('2020-12-31') ), STRUCT( TRUE AS perform_aggregation, 30 AS horizon))

 

Rezultati so spodaj.

ARIMA_PLUS

 

Multivariatno napovedovanje časovnih vrst z BQML
 

ARIMA_PLUS_XREG

 

Multivariatno napovedovanje časovnih vrst z BQML
 

Lahko vidite, da Model XREG je pred nami glede osnovnih meril delovanja, kot so MAE, MSE in MAPE. (Očitno to ni popolna rešitev, odvisno od podatkovin lahko samo rečemo, da smo dobili še eno uporabno orodje.)

Multivariatna analiza časovnih vrst je v mnogih primerih zelo potrebna možnost, vendar jo je zaradi različnih razlogov pogosto težko uporabiti. Zdaj ga lahko uporabimo, če so razlogi v podatkih in korakih analize. Videti je, da imamo dobro možnost za to, zato je dobro vedeti zanjo in upajmo, da bo uporabna v mnogih primerih.
 
 
JeongMin Kwon je samostojni višji podatkovni znanstvenik z 10+ leti praktičnih izkušenj z uporabo modelov strojnega učenja in podatkovnega rudarjenja.
 

Časovni žig:

Več od KDnuggets