Condividi tramite


Panoramica dei metodi di previsione in AutoML

Questo articolo è incentrato sui metodi usati da AutoML per preparare i dati delle serie temporali e creare modelli di previsione. Istruzioni ed esempi per il training dei modelli di previsione in AutoML sono disponibili nell'articolo Configurare AutoML per le previsioni delle serie temporali.

AutoML usa diversi metodi per prevedere i valori delle serie temporali. Questi metodi possono essere classificati in due categorie:

  1. Modelli di serie temporali che usano valori cronologici della quantità di destinazione per eseguire stime in anticipo.
  2. Modelli di regressione o esplicativi che usano le variabili del predittore per prevedere i valori della destinazione.

Ad esempio, si consideri il problema della previsione della domanda giornaliera di una determinata marca di succo d'arancia in un negozio di alimentari. Si supponga che $y_t$ rappresenti la domanda di questa marca il giorno $t$. Un modello di serie temporale prevede la domanda a $t+1$ usando una funzione della domanda cronologica,

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

La funzione $f$ ha spesso parametri ottimizzati usando la domanda osservata nel passato. Anche la quantità di cronologia usata da $f$ per eseguire stime, $s$, può essere considerata un parametro del modello.

Il modello di serie temporale nell'esempio della domanda di succo d'arancia potrebbe non essere sufficientemente accurato perché usa solo informazioni sulla domanda passata. Ci sono molti altri fattori che probabilmente influenzano la domanda futura, come il prezzo, il giorno della settimana e se si tratta di un giorno festivo o meno. Si consideri un modello di regressione che usa queste variabili del predittore,

$y = g(\text{price}, \text{day of week}, \text{holiday})$.

Anche in questo caso, $g$ ha in genere un set di parametri, inclusi quelli che regolano la regolarizzazione, che AutoML ottimizza usando i valori precedenti della domanda e dei predittori. Viene omesso $t$ dall'espressione per sottolineare che il modello di regressione usa modelli di correlazione tra variabili definite contemporaneamente per eseguire stime. Ovvero, per stimare $y_{t+1}$ da $g$, occorre sapere in quale giorno della settimana cade $t+1$, se si tratta di un giorno festivo e il prezzo del succo d'arancia nel giorno $t+1$. Le prime due informazioni sono sempre facilmente reperibili consultando un calendario. Un prezzo al dettaglio viene in genere fissato in anticipo, quindi è probabile che anche il prezzo del succo d'arancia sia noto con un giorno di anticipo. Tuttavia, il prezzo potrebbe non essere noto con 10 giorni di anticipo. È importante comprendere che l'utilità di questa regressione è limitata da quanto tempo in anticipo sono necessarie le previsioni, detto anche orizzonte di previsione, e da quanto si conoscono i valori futuri dei predittori.

Importante

I modelli di regressione di previsione di AutoML presuppongono che tutte le funzionalità fornite dall'utente siano note in anticipo, almeno fino all'orizzonte di previsione.

I modelli di regressione dei previsione di AutoML possono anche essere aumentati per usare i valori cronologici della destinazione e dei predittori. Il risultato è un modello ibrido con caratteristiche di un modello di serie temporale e un modello di regressione puro. Le quantità cronologiche sono variabili del predittore aggiuntive nella regressione e vengono definite quantità di ritardo. L'ordine del ritardo fa riferimento a quanto risale il valore noto. Ad esempio, il valore corrente di un ritardo di due ordini rispetto alla destinazione per l'esempio di domanda di succo d'arancia è la domanda di succo osservata due giorni fa.

Un'altra differenza notevole tra i modelli di serie temporali e i modelli di regressione è il modo in cui generano le previsioni. I modelli di serie temporali sono in genere definiti da relazioni di ricorsione e producono previsioni una alla volta. Per prevedere molti periodi in anticipo, eseguono l'iterazione fino all'orizzonte di previsione, reinserendo le previsioni precedenti nel modello per generare la previsione successiva con un periodo di anticipo in base alle esigenze. I modelli di regressione, invece, sono i cosiddetti strumenti di previsione diretti che generano tutte le previsioni fino all'orizzonte in un'unica operazione. Gli strumenti di previsione diretti possono essere preferibili a quelli ricorsivi perché i modelli ricorsivi aggravano l'errore di previsione quando reinseriscono nel modello le previsioni precedenti. Quando vengono incluse le funzionalità di ritardo, AutoML apporta alcune importanti modifiche ai dati di training in modo che i modelli di regressione possano funzionare come strumenti di previsione diretti. Per altre informazioni, vedere l'articolo sulle funzionalità di ritardo.

Modelli di previsione in AutoML

La tabella seguente elenca i modelli di previsione implementati in AutoML e la categoria a cui appartengono:

Modelli si Time Series Modelli di regressione
Naive, Seasonal Naive, Average, Seasonal Average, ARIMA(X), Exponential Smoothing Linear SGD, LARS LASSO, Elastic Net, Prophet, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

I modelli di ogni categoria sono elencati approssimativamente in ordine di complessità dei modelli che sono in grado di incorporare, noto anche come capacità del modello. Un modello Naive, che prevede semplicemente l'ultimo valore osservato, ha una bassa capacità mentre la rete temporale convoluzionale (TCNForecaster), una rete neurale profonda con potenzialmente milioni di parametri ottimizzabili, ha una capacità elevata.

In particolare, AutoML include anche modelli di ensemble che creano combinazioni ponderate dei modelli con prestazioni migliori per migliorare ulteriormente l'accuratezza. Per le previsioni, viene usato un soft voting ensemble in cui la composizione e i pesi vengono trovati tramite l'algoritmo Caruana Ensemble Selection Algorithm.

Nota

Esistono due importanti avvertenze per gli ensemble di modelli di previsione:

  1. Il TCN non può attualmente essere incluso negli ensemble.
  2. AutoML disabilita per impostazione predefinita un altro metodo di ensemble, lo stack ensemble, incluso con le attività di regressione e classificazione predefinite di AutoML. Lo stack ensemble adatta un metamodello alle previsioni del modello migliore per trovare i pesi dell'ensemble. Nel benchmarking interno è stato rilevato che questa strategia ha una maggiore tendenza a sovra-adattare i dati delle serie temporali. Ciò può comportare una scarsa generalizzazione, quindi lo stack ensemble è disabilitato per impostazione predefinita. Tuttavia, può essere abilitato se necessario nella configurazione di AutoML.

Come AutoML usa i dati

AutoML accetta i dati delle serie temporali in formato tabulare "wide"; ovvero ogni variabile deve avere una propria colonna corrispondente. AutoML richiede che una delle colonne sia l'asse temporale per il problema di previsione. Questa colonna deve essere analizzabile in un tipo datetime. Il set di dati della serie temporale più semplice è costituito da una colonna temporale e da una colonna di destinazione numerica. La destinazione è la variabile che si intende prevedere in anticipo. Di seguito è riportato un esempio del formato in questo semplice caso:

timestamp quantity
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

In casi più complessi, i dati possono contenere altre colonne allineate all'indice temporale.

timestamp SKU price annunciato quantity
2012-01-01 JUICE1 3.5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUICE1 3.5 0 97
2012-01-02 BREAD3 5.5 1 68
... ... ... ... ...
2013-12-31 JUICE1 3.75 0 347
2013-12-31 BREAD3 5.7 0 94

In questo esempio, oltre al timestamp e alla quantità di destinazione, sono presenti uno SKU, un prezzo al dettaglio e un flag che indica se un elemento è stato annunciato. In questo set di dati sono evidentemente presenti due serie: una per lo SKU JUICE1 e una per lo SKU BREAD3; la colonna SKU è una colonna ID della serie temporale poiché il raggruppamento in base a tale colonna fornisce due gruppi contenenti ciascuno una singola serie. Prima di eseguire lo sweep dei modelli, AutoML esegue la convalida di base della configurazione e dei dati di input e aggiunge funzionalità progettate.

Requisiti di lunghezza dei dati

Per eseguire il training di un modello di previsione, è necessario disporre di una quantità sufficiente di dati cronologici. Questa quantità di soglia varia in base alla configurazione del training. Se sono stati forniti dati di convalida, il numero minimo di osservazioni di training necessarie per ogni serie temporale è dato da,

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

dove $H$ è l'orizzonte di previsione, $l_{\text{max}}$ è l'ordine massimo di ritardo e $s_{\text{window}}$ è la dimensione della finestra per le funzionalità di aggregazione in sequenza. Se si usa la convalida incrociata, il numero minimo di osservazioni è,

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

dove $n_{\text{CV}}$ è il numero di riduzioni di convalida incrociata e $n_{\text{step}}$ è la dimensione del passaggio di convalida incrociata o l'offset tra le riduzioni di convalida incrociata. La logica di base di queste formule è che è necessario avere sempre almeno un orizzonte di osservazioni di training per ogni serie temporale, incluso un riempimento per i ritardi e le suddivisioni di convalida incrociata. Per altre informazioni sulla convalida incrociata per la previsione, vedere Selezione del modello di previsione.

Gestione dei dati mancanti

I modelli di serie temporali di AutoML richiedono osservazioni regolarmente distanziate nel tempo. Per intervalli regolari si intendono casi come osservazioni mensili o annuali in cui il numero di giorni tra le osservazioni può variare. Prima di procedere alla modellazione, AutoML deve assicurarsi che non ci siano valori mancanti nelle serie e che le osservazioni siano regolari. Esistono quindi due casi di dati mancanti:

  • Manca un valore per alcune celle dei dati tabulari
  • Manca una riga che corrisponde a un'osservazione prevista in base alla frequenza della serie temporale

Nel primo caso, AutoML imputa i valori mancanti usando tecniche comuni configurabili.

Nella tabella seguente è riportato un esempio di riga mancante e prevista:

timestamp quantity
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

Questa serie ha apparentemente una frequenza giornaliera, ma non ci sono osservazioni per il 2 gennaio 2012. In questo caso, AutoML tenterà di completare i dati aggiungendo una nuova riga per il 2 gennaio 2012. Il nuovo valore della colonna quantity e di tutte le altre colonne dei dati verrà quindi imputato come altri valori mancanti. Chiaramente, AutoML deve conoscere la frequenza della serie per colmare lacune di osservazione come questa. AutoML rileva automaticamente questa frequenza o, facoltativamente, l'utente può specificarla nella configurazione.

Il metodo di imputazione per riempire i valori mancanti può essere configurato nell'input. I metodi predefiniti sono elencati nella tabella seguente:

Tipo colonna Metodo di imputazione predefinito
Destinazione Riempimento in avanti (ultima osservazione riportata)
Funzionalità numerica Valore mediano

I valori mancanti per le funzionalità categoriche vengono gestiti durante la codifica numerica includendo una categoria aggiuntiva corrispondente a un valore mancante. L'imputazione è implicita in questo caso.

Definizione delle funzionalità automatizzata

AutoML aggiunge in genere nuove colonne ai dati utente per aumentare l'accuratezza della modellazione. Una funzionalità progettata può includere quanto segue:

Gruppo di funzionalità Predefinito/Facoltativo
Funzionalità di calendario derivate dall'indice temporale (ad esempio, giorno della settimana) Default
Funzionalità categoriche derivate dagli ID serie temporale Default
Codifica di tipi categorici in tipo numerico Default
Funzionalità di indicatore per le festività associate a un determinato paese o area geografica Facoltativo
Ritardi della quantità di destinazione Facoltativo
Ritardi delle colonne delle funzionalità Facoltativo
Aggregazioni di finestre in sequenza (ad esempio, media mobile) della quantità di destinazione Facoltativo
Decomposizione stagionale (STL) Facoltativo

È possibile configurare la definizione delle funzionalità da AutoML SDK tramite la classe ForecastingJob o dall'interfaccia Web dello studio di Azure Machine Learning.

Rilevamento e gestione di serie temporali non stazionarie

Una serie temporale in cui la media e la varianza cambiano nel tempo è detta non stazionaria. Ad esempio, le serie temporali che presentano tendenze stocastiche sono per loro natura non stazionarie. Per visualizzare questo aspetto, l'immagine seguente mostra il grafico di una serie che tende generalmente verso l'alto. Ora, calcolare e confrontare i valori medi della prima e della seconda metà della serie. Coincidono? In questo caso, la media della serie nella prima metà del grafico è significativamente più piccola rispetto alla seconda metà. Il fatto che la media della serie dipenda dall'intervallo di tempo che si sta osservando è un esempio di momenti variabili nel tempo. In questo caso, la media di una serie è il primo momento.

Diagram showing retail sales for a non-stationary time series.

Esaminare quindi l'immagine seguente, che mostra il grafico della serie originale nelle prime differenze, $\Delta y_{t} = y_t - y_{t-1}$. La media della serie è approssimativamente costante nell'intervallo di tempo, mentre la varianza sembra variare. Si tratta quindi di un esempio di serie temporale stazionaria di primo ordine.

Diagram showing retail sales for a weakly stationary time series.

I modelli di regressione AutoML non sono in grado di gestire intrinsecamente le tendenze stocastiche o altri problemi ben noti associati alle serie temporali non stazionarie. Di conseguenza, l'accuratezza delle previsioni fuori campione può essere scarsa in presenza di tali tendenze.

AutoML analizza automaticamente il set di dati delle serie temporali per determinare la stazionarietà. Quando vengono rilevate serie temporali non stazionarie, AutoML applica automaticamente una trasformazione di differenziazione per mitigare l'impatto del comportamento non stazionario.

Sweep dei modelli

Dopo aver preparato i dati con la gestione dei dati mancanti e la progettazione delle funzionalità, AutoML esegue lo sweep di un set di modelli e iperparametri usando un servizio di raccomandazione dei modelli. I modelli vengono classificati in base a metriche di convalida o di convalida incrociata e quindi, facoltativamente, i modelli migliori possono essere usati in un modello di ensemble. Il modello migliore, o uno qualsiasi dei modelli sottoposti a training, può essere controllato, scaricato o distribuito per produrre previsioni in base alle esigenze. Per altri dettagli, vedere l'articolo sulla selezione e lo sweep dei modelli.

Raggruppamento dei modelli

Quando un set di dati contiene più di una serie temporale, come nell'esempio di dati fornito, esistono diversi modi per modellare i dati. Ad esempio, è possibile raggruppare semplicemente in base alle colonne ID serie temporale ed eseguire il training dei modelli indipendenti per ogni serie. Un approccio più generale consiste nel partizionare i dati in gruppi che possono contenere ciascuno più serie probabilmente correlate ed eseguire il training di un modello per ogni gruppo. Per impostazione predefinita, la previsione di AutoML usa un approccio misto per il raggruppamento dei modelli. I modelli di serie temporali, oltre ad ARIMAX e Prophet, assegnano una serie a un gruppo, mentre altri modelli di regressione assegnano tutte le serie a un unico gruppo. La tabella seguente riepiloga i raggruppamenti dei modelli in due categorie, uno-a-uno e molti-a-uno:

Ogni serie nel proprio gruppo (1:1) Tutte le serie in un unico gruppo (N:1)
Naive, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

Raggruppamenti di modelli più generali sono possibili grazie alla soluzione Molti modelli di AutoML; vedere il notebook Molti modelli - ML automatizzato.

Passaggi successivi