Immagine da Pexels
Lo scorso inverno ho tenuto una presentazione su "Modello di serie temporali più prevedibile con BQML' a GDG DevFest Tashkent 2022 a Tashkent, capitale dell'Uzbekistan.
Avrei voluto condividere parte del materiale e del codice che ho utilizzato nella presentazione dopo il DevFest, ma il tempo è passato e in BQML sono state rilasciate nuove funzionalità che si sovrappongono ad alcuni contenuti.
Pertanto, menzionerò invece brevemente le nuove funzionalità e alcune cose che sono ancora valide.
Dati di serie temporali viene utilizzato da molte organizzazioni per una varietà di scopi ed è importante notare che "analitica predittivas” riguarda il “futuro” nel tempo. L’analisi predittiva delle serie temporali è stata utilizzata a breve, medio e lungo termine e, sebbene presenti molte imprecisioni e rischi, è anche in costante miglioramento.
Poiché la "previsione" sembra essere così utile, potresti essere tentato di applicare un modello di previsione delle serie temporali se disponi di dati di serie temporali. Ma i modelli di previsione delle serie temporali sono solitamente impegnativi dal punto di vista computazionale e, se si dispone di molti dati, saranno più intensivi dal punto di vista computazionale. Quindi è complicato e difficile elaborarlo, caricarlo nell'ambiente di analisi e analizzarlo
Se si utilizza Google BigQuery per la gestione dei dati, è possibile utilizzare BQML (BigQuery ML) per applicare algoritmi di machine learning ai tuoi dati in modo semplice, facile e veloce. Molte persone utilizzano BigQuery per elaborare grandi quantità di dati, molti dei quali sono spesso dati di serie temporali. E BQML supporta anche modelli di serie temporali.
La base del modello di serie temporali attualmente supportato da BQML è il Media mobile integrata autoregressiva (ARIMA) modello. Il modello ARIMA prevede utilizzando solo i dati di serie temporali esistenti ed è noto per avere buone prestazioni di previsione a breve termine e, poiché combina AR e MA, è un modello popolare in grado di coprire un'ampia gamma di modelli di serie temporali.
Tuttavia, questo modello è nel complesso impegnativo dal punto di vista computazionale e poiché utilizza solo dati di serie temporali con normalità, è difficile utilizzarlo in casi con tendenze o stagionalità. Perciò, ARIMA_PLUS in BQML include diverse funzionalità aggiuntive come opzioni. Puoi aggiungere la scomposizione delle serie temporali, fattori di stagionalità, picchi e cali, modifiche dei coefficienti e altro al tuo modello oppure puoi esaminarli separatamente e regolare manualmente il modello. Personalmente apprezzo anche il fatto che sia possibile adeguarsi alla periodicità incorporando automaticamente le opzioni relative alle vacanze, che è uno dei vantaggi dell'utilizzo di una piattaforma che non richiede l'aggiunta manuale di informazioni relative alle date.
Struttura di ARIMA_PLUS (da Manuale BQML)
Puoi fare riferimento a questo pagina per maggiori informazioni.
Tuttavia, quando si tratta di applicazioni nel mondo reale, la previsione delle serie temporali non è così semplice. Naturalmente, siamo stati in grado di identificare più cicli e aggiungere interventi a più serie temporali con ARIMA_PLUS, ma ci sono molti fattori esterni correlati ai dati delle serie temporali e solo pochissimi eventi si verificano isolatamente. La stazionarietà può essere difficile da trovare nei dati di serie temporali.
Nella presentazione originale, ho esaminato come gestire questi dati di serie temporali del mondo reale per creare modelli di previsione scomporre queste serie temporali, ripulisci i dati scomposti, importali in Python e quindi intrecciarlo con altre variabili per creare una funzione di serie temporale multivariata, stimare la causalità e incorporarla in un modello di previsione e stimare il grado in cui l'effetto varia con i cambiamenti negli eventi.
E solo negli ultimi mesi, una nuova funzionalità per creare funzioni di serie temporali multivariate con variabili esterne(ARIMA_PLUS_XREG, XREG sotto) è diventata una caratteristica assoluta di BQML.
Puoi leggere tutto al riguardo qui(è in anteprima da luglio 2023, ma immagino che sarà disponibile entro la fine dell'anno).
applico il tutorial ufficiale per vedere come si confronta con un modello tradizionale di serie temporali univariate e possiamo vedere come funziona.
I passaggi sono gli stessi del tutorial, quindi non li duplicherò, ma ecco i due modelli che ho creato. Innanzitutto, ho creato un file tradizionale ARIMA_PLUS modello e poi un XREG modello utilizzando gli stessi dati ma aggiungendo la temperatura e la velocità del vento in quel momento.
# 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')
Un modello che utilizza questi dati multipli sarebbe simile a questo
Struttura ARIMA_PLUS_XREG (da Manuale BQML)
Due modelli vengono confrontati con 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))
I risultati sono riportati di seguito.
ARIMA_PLUS
ARIMA_PLUS_XREG
Si può vedere che il Il modello XREG è in vantaggio rispetto ai parametri prestazionali di base come MAE, MSE e MAPE. (Ovviamente questa non è una soluzione perfetta, dipendente dai dati, e possiamo semplicemente dire che abbiamo un altro strumento utile.)
L'analisi multivariata delle serie temporali è un'opzione molto necessaria in molti casi, ma spesso è difficile da applicare per vari motivi. Ora possiamo usarlo se i motivi sono nei dati e nelle fasi di analisi. Sembra che abbiamo una buona opzione per questo, quindi è bello saperlo e speriamo che sia utile in molti casi.
JeongMin Kwon è un Data Scientist senior freelance con oltre 10 anni di esperienza pratica nello sfruttamento di modelli di machine learning e data mining.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- PlatoData.Network Generativo verticale Ai. Potenzia te stesso. Accedi qui.
- PlatoAiStream. Intelligenza Web3. Conoscenza amplificata. Accedi qui.
- PlatoneESG. Automobilistico/VE, Carbonio, Tecnologia pulita, Energia, Ambiente, Solare, Gestione dei rifiuti. Accedi qui.
- BlockOffset. Modernizzare la proprietà della compensazione ambientale. Accedi qui.
- Fonte: https://www.kdnuggets.com/2023/07/multivariate-timeseries-prediction-bqml.html?utm_source=rss&utm_medium=rss&utm_campaign=multivariate-time-series-prediction-with-bqml
- :ha
- :È
- :non
- :Dove
- $ SU
- 2023
- 30
- a
- capace
- WRI
- a proposito
- aggiungere
- l'aggiunta di
- aggiuntivo
- Dopo shavasana, sedersi in silenzio; saluti;
- avanti
- Algoritmi
- Tutti
- anche
- an
- .
- analitica
- analizzare
- ed
- Un altro
- applicazioni
- APPLICA
- AR
- SONO
- AS
- At
- automaticamente
- disponibile
- media
- basic
- base
- BE
- diventare
- stato
- sotto
- vantaggi
- fra
- BigQuery
- brevemente
- ma
- by
- Materiale
- capitale
- casi
- Modifiche
- codice
- combina
- viene
- comunità
- rispetto
- contenuto
- corso
- coprire
- creare
- creato
- Creazione
- Attualmente
- cicli
- dati
- gestione dei dati
- data mining
- scienziato di dati
- Data
- Date
- affare
- Laurea
- difficile
- non
- dovuto
- facile
- effetto
- Ambiente
- stima
- valutare
- eventi
- esistente
- esperienza
- esterno
- fatto
- Fattori
- FAST
- caratteristica
- Caratteristiche
- pochi
- Trovate
- Nome
- Nel
- indipendente
- da
- function
- funzioni
- Go
- andando
- buono
- mani su
- accadere
- Hard
- Avere
- qui
- Vacanza
- Fiduciosamente
- orizzonte
- Come
- Tutorial
- HTTPS
- i
- MALATO
- identificare
- if
- importare
- importante
- miglioramento
- in
- inclusi
- incorporare
- incorporando
- informazioni
- invece
- integrato
- ai miglioramenti
- da solo
- IT
- jpg
- Luglio
- ad appena
- KDnuggets
- Sapere
- conosciuto
- Cognome
- dopo
- apprendimento
- leveraging
- piace
- caricare
- Lunghi
- Guarda
- guardò
- SEMBRA
- lotto
- macchina
- machine learning
- Fare
- gestione
- manualmente
- molti
- materiale
- medie
- Metrica
- forza
- Siti di estrazione mineraria
- ML
- modello
- modelli
- mese
- Scopri di più
- in movimento
- media mobile
- tanto necessaria
- multiplo
- New
- nuova funzione
- Nuove funzionalità
- adesso
- of
- ufficiale
- di frequente
- on
- ONE
- esclusivamente
- Opzione
- Opzioni
- or
- organizzazioni
- i
- Altro
- complessivo
- Passato
- Persone
- perfetta
- performance
- Personalmente
- piattaforma
- Platone
- Platone Data Intelligence
- PlatoneDati
- Popolare
- Prevedibile
- predizione
- Predictive Analytics
- predice
- presentazione
- Anteprima
- processi
- fini
- Python
- gamma
- Leggi
- mondo reale
- motivi
- relazionato
- rilasciato
- sostituire
- richiedere
- rischi
- stesso
- dire
- Scienziato
- vedere
- sembra
- anziano
- Serie
- alcuni
- Condividi
- Corti
- a breve scadenza
- Un'espansione
- da
- So
- soluzione
- alcuni
- qualcosa
- velocità
- picchi
- Passi
- Ancora
- tale
- supportato
- supporti
- termine
- che
- Il
- La capitale
- Li
- poi
- Là.
- perciò
- Strumenti Bowman per analizzare le seguenti finiture:
- cose
- questo
- quest'anno
- Attraverso
- tempo
- Serie storiche
- a
- tradizionale
- tendenze
- vero
- lezione
- seconda
- uso
- utilizzato
- usa
- utilizzando
- generalmente
- utilizza
- Uzbekistan
- varietà
- vario
- molto
- Prima
- Modo..
- we
- quando
- quale
- while
- largo
- Vasta gamma
- wikipedia
- volere
- vento
- Inverno
- con
- lavori
- sarebbe
- anno
- anni
- Tu
- Trasferimento da aeroporto a Sharm
- zefiro