Come fare previsioni con Google BigQuery
Le previsioni sono uno strumento essenziale per le aziende, che consente loro di prevedere le tendenze future e prendere decisioni informate. Con la potenza di Google BigQuery, puoi eseguire previsioni in modo efficiente su set di dati di grandi dimensioni e ottenere informazioni preziose sul futuro della tua attività.
In questo tutorial, ti illustreremo le nozioni di base della previsione con BigQuery, incluso come impostare i dati, scegliere il modello di previsione adatto e interpretare i risultati.
Quindi iniziamo!
Il caso d'uso: previsione delle vendite settimanali del negozio di e-commerce The Look
Il set di dati Look E-commerce Shop raccoglie i dati sulle vendite da un negozio online. Include informazioni su ordini, prodotti, clienti e altro. Questo set di dati è una risorsa eccellente per chiunque desideri analizzare e comprendere il comportamento dei clienti dell'e-commerce e prendere decisioni informate sulla propria attività.
Ecco lo schema del database, così puoi capire come costruire le tue query per ulteriori analisi:
Con Google BigQuery, puoi accedervi senza alcuno sforzo!
Per esempio:
SELECT
user_id,
order_id,
created_at
FROM `bigquery-public-data.thelook_ecommerce.orders`
LIMIT 10
SELECT
DATE_TRUNC(o.created_at, WEEK) as week,
ROUND(SUM(oi.sale_price)) as sales
FROM `bigquery-public-data.thelook_ecommerce.orders` o
INNER JOIN `bigquery-public-data.thelook_ecommerce.order_items` oi
ON o.order_id = oi.order_id
GROUP BY week
ORDER BY week
Shop Weekly Sales
Come fare previsioni con Google BigQuery e ARIMA
ARIMA è l'acronimo di Autoregressive Integrated Moving Average . È un modello di serie temporali che combina tre diverse componenti:
- Termine autoregressivo (AR) : esaminiamo i valori passati delle serie temporali e proviamo a prevedere i valori futuri in base a quelli.
- Termine integrato (I) : calcoliamo la differenza tra il valore corrente della serie temporale e il valore precedente e proviamo a prevedere i valori futuri in base a tali differenze.
- Termine della media mobile (MA) : questo termine esamina la media dei valori passati delle serie temporali e cerca di prevedere i valori futuri in base a tale media [1].
Come creare e addestrare un modello ARIMA con Google BigQuery
Grazie a Google ML, possiamo utilizzare ARIMA[2] con Google BigQuery :
CREATE MODEL IF NOT EXISTS `your_project.your_dataset.arima`
OPTIONS(MODEL_TYPE='ARIMA_PLUS',
time_series_timestamp_col='week',
time_series_data_col='sales'
) AS
SELECT
DATE_TRUNC(o.created_at, WEEK) as week,
ROUND(SUM(oi.sale_price)) as sales
FROM `bigquery-public-data.thelook_ecommerce.orders` o
INNER JOIN `bigquery-public-data.thelook_ecommerce.order_items` oi
ON o.order_id = oi.order_id
GROUP BY week
ORDER BY week
- il modello Machine Learning: ecco come si seleziona ARIMA ;
- la colonna da considerare per l'informazione di timestamp;
- e la colonna per impostare i dati ;
Come sapere se il modello di Machine Learning è buono
Dopo aver creato il modello [3], è possibile utilizzare la ML.ARIMA_EVALUATEfunzione per visualizzare le metriche di valutazione di tutti i modelli candidati valutati durante l'ottimizzazione automatica dell'iperparametro:
SELECT
*
FROM
ML.ARIMA_EVALUATE(MODEL your_project.your_dataset.arima)
- Le quattro colonne seguenti (
non_seasonal_{p,d,q}ehas_drift) definiscono un modello ARIMA nella pipeline di addestramento. - Le tre metriche successive (
log_likelihood,AICevariance) sono rilevanti per il processo di adattamento del modello ARIMA.
AIC ordina questi modelli candidati in ordine crescente.
Il modello migliore viene salvato come modello finale e viene utilizzato quando si chiama ML.EXPLAIN_FORECAST, ML.FORECASTcome illustrato nei passaggi seguenti.
Cos'è l'AIC (aka Akaike Information Criterion)
È uno stimatore dell'errore di previsione e, quindi, della qualità relativa dei modelli statistici per un dato set di dati.[4]
Viene utilizzato per confrontare diversi modelli e selezionare quello più economico, il che significa che ha il minor numero di parametri pur adattando adeguatamente i dati.
Quando si valuta un modello ARIMA, l'AIC viene utilizzato per confrontare la qualità di diversi modelli che hanno diverse combinazioni di termini autoregressivi (AR), differenziali (I) e media mobile (MA).
Il modello con l'AIC più basso è considerato il migliore.
Come utilizzare il modello migliore per prevedere le serie storiche
Ora è il momento di fare previsioni!
Per questo, utilizzerai la funzione ML.FORECAST, che viene fornita con molti argomenti, ma solo due sono richiesti:
- La selezione del MODELLO: selezionerai quello che hai addestrato;
- E una struttura BigQuery con 2 parametri:
horizoneconfidence_level
Se vuoi prevedere le prossime 52 settimane di vendite (un anno) con un buon livello di fiducia, ecco la query corretta:
SELECT
*
FROM
ML.FORECAST(
MODEL your_project.your_dataset.arima,
STRUCT(52 AS horizon, 0.8 AS confidence_level)
)
La vista include almeno le seguenti colonne:
forecast_timestampforecast_valuestandard_errorconfidence_levelprediction_interval_lower_boundprediction_interval_upper_bound
Nella previsione delle serie temporali, l'intervallo di previsione, che viene catturato dai limiti inferiore e superiore, è importante quanto il forecast_value.
In un ulteriore articolo, spiegherò come puoi visualizzare le tue previsioni accanto ai tuoi dati attuali. Tuttavia, per ora, puoi utilizzare l'integrazione di Looker Studio per "tracciare" le tue previsioni:
In base a queste proiezioni, possiamo già affermare che il trend e la stagionalità sono più critici per il modello ARIMA rispetto agli ultimi valori: i modelli hanno riprodotto la "forma" delle nostre vendite precedenti invece di privilegiare l'"esponenzialità" delle ultime vendite.
Se hai domande, sentiti libero di commentare, e se ti è piaciuto l'articolo, seguimi e riceverai una notifica quando pubblicherò la prossima volta.
Riferimenti
[1] Come calcolare una media mobile con SQL , Apprendimento della pubblicazione SQL
[2] L'istruzione CREATE MODEL , Documentazione ufficiale di BigQuery ML
[3] Previsione di una singola serie temporale , Documentazione ufficiale di BigQuery ML
[4] Akaike Information Criterion , Wikipedia

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































