Condividi tramite


Funzionalità di calendario per la previsione di serie temporali in AutoML

Questo articolo è incentrato sulle funzionalità basate sul calendario create da AutoML per aumentare l'accuratezza dei modelli di regressione delle previsioni. Poiché le festività possono avere una forte influenza sul comportamento del sistema del modello, il tempo prima, durante e dopo una festività può influire sui modelli della serie. Ogni festività genera una finestra sul set di dati esistente a cui lo strumento di apprendimento può assegnare un effetto. Ciò può essere particolarmente utile in scenari come le festività che generano richieste elevate di prodotti specifici. Per altre informazioni generali sulla metodologia di previsione in AutoML, vedere l'articolo sulla panoramica dei metodi. Istruzioni ed esempi per il training dei modelli di previsione in AutoML sono disponibili nell'articolo Configurare AutoML per le previsioni delle serie temporali.

Nell'ambito della progettazione delle funzionalità, AutoML trasforma le colonne di tipo datetime fornite nei dati di training in nuove colonne di funzionalità basate sul calendario. Queste funzionalità consentono ai modelli di regressione di apprendere criteri stagionali a intervalli diversi. AutoML può sempre creare funzionalità del calendario dall'indice temporale della serie temporale poiché si tratta di una colonna obbligatoria nei dati di training. Le funzionalità del calendario vengono eseguite anche da altre colonne con tipo datetime, se presenti. Per altre informazioni sui requisiti dei dati, vedere la guida all'uso dei dati da parte di AutoML.

AutoML considera due categorie di funzionalità del calendario: le funzionalità standard, basate interamente sui valori di data e ora, e le funzionalità delle festività specifiche di un paese o di un'area geografica del mondo. Queste funzionalità verranno descritte nella parte restante dell'articolo.

Funzionalità del calendario standard

La tabella seguente mostra il set completo delle funzionalità del calendario standard di AutoML insieme a un output di esempio. Nell'esempio viene usato il formato YY-mm-dd %H-%m-%d standard per la rappresentazione datetime.

Nome funzionalità Descrizione Output di esempio per 2011-01-01 00:25:30
year Funzionalità numerica che rappresenta l'anno di calendario 2011
year_iso Rappresenta l'anno ISO come definito secondo lo standard ISO 8601. Gli anni ISO iniziano la prima settimana dell'anno che ha un giovedì. Ad esempio, se il 1° gennaio è un venerdì, l'anno ISO inizia il 4 gennaio. Gli anni ISO possono differire dagli anni di calendario. 2010
half Funzionalità che indica se la data è nella prima o nella seconda metà dell'anno. È 1 se la data è precedente all'1° luglio, e 2 in caso contrario.
quarter Funzionalità numerica che rappresenta il trimestre della data specificata. Accetta valori 1, 2, 3 o 4 che rappresentano il primo, il secondo, il terzo, il quarto trimestre dell'anno di calendario. 1
month Funzionalità numerica che rappresenta il mese di calendario. Accetta valori da 1 a 12. 1
month_lbl Funzionalità della stringa che rappresenta il nome del mese. "gennaio"
day Funzionalità numerica che rappresenta il giorno del mese. Accetta valori compresi tra 1 e 31. 1
hour Funzionalità numerica che rappresenta l'ora del giorno. Accetta valori da 0 a 23. 0
minute Funzionalità numerica che rappresenta il minuto di un'ora. Accetta valori da 0 a 59. 25
second Funzionalità numerica che rappresenta il secondo del valore datetime specificato. Nel caso in cui venga specificato solo il formato della data, viene considerato come 0. Accetta valori da 0 a 59. 30
am_pm Funzionalità numerica che indica se l'ora è di giorno o di notte. È 0 per le ore prima delle 12:00 e 1 per ore dopo le 12:00. 0
am_pm_lbl Funzionalità della stringa che indica se l'ora è di giorno o di notte. 'am'
hour12 Funzionalità numerica che rappresenta l'ora del giorno in un orologio di 12 ore. Accetta valori da 0 a 12 per la prima metà del giorno e da 1 a 11 per la seconda metà. 0
wday Funzionalità numerica che rappresenta il giorno della settimana. Accetta valori da 0 a 6, dove 0 corrisponde al lunedì. 5
wday_lbl Funzionalità della stringa che rappresenta il nome del giorno della settimana.
qday Funzionalità numerica che rappresenta il giorno all'interno del trimestre. Accetta valori da 1 a 92. 1
yday Funzionalità numerica che rappresenta il giorno dell'anno. Accetta valori da 1 a 365 o da 1 a 366 in caso di anno bisestile. 1
week Funzionalità numerica che rappresenta la settimana ISO definita secondo lo standard ISO 8601. Le settimane ISO iniziano sempre lunedì e terminano la domenica. Accetta valori da 1 a 52 o 53 per anni in cui il 1° gennaio cade il giovedì o per gli anni bisestili in cui il 1° gennaio cade il mercoledì. 52

Il set completo di funzionalità del calendario standard potrebbe non essere creato in tutti i casi. Il set generato dipende dalla frequenza della serie temporale e dal fatto che i dati di training contengano caratteristiche datetime oltre all'indice temporale. La tabella seguente illustra le funzionalità create per tipi di colonna diversi:

Scopo della colonna Funzionalità del calendario
Indice ora Il set completo meno le funzionalità del calendario con correlazione elevata con altre funzionalità. Ad esempio, se la frequenza della serie temporale è giornaliera, tutte le funzionalità con una frequenza maggiore di quella giornaliera verranno rimosse perché non forniscono informazioni utili.
Altra colonna datetime Un set ridotto composto da Year, Month, Day, DayOfWeek, DayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute e Second. Se la colonna è una data senza ora, Hour, Minute e Second saranno 0.

Caratteristiche delle festività

AutoML può facoltativamente creare funzionalità che rappresentano le festività per un paese o un'area geografica specifica. Queste funzionalità vengono configurate in AutoML usando il parametro country_or_region_for_holidays, che accetta un codice paese ISO.

Nota

Le funzionalità delle festività sono disponibili solo per le serie temporali con frequenza giornaliera.

La tabella seguente riepiloga le funzionalità delle festività:

Nome funzionalità Descrizione
Holiday Funzionalità della stringa che specifica se una data è una festività nazionale/regionale. Anche i giorni entro un intervallo di festività sono contrassegnati.
isPaidTimeOff Funzionalità binaria che accetta valore 1 se il giorno è una "assenza a pagamento" nel paese o nell'area geografica specificata.

AutoML usa set di dati aperti di Azure come origine per informazioni sulle festività. Per altre informazioni, vedere la documentazione di PublicHolidays.

Per comprendere meglio la generazione delle funzionalità di festività, considerare i dati di esempio seguenti:

sample_data

Per adottare le funzionalità delle festività americane per questi dati, impostare country_or_region_for_holiday su "US" nelle impostazioni di previsione, come illustrato nell'esempio di codice seguente:

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

Le funzionalità delle festività generate sono simili all'output seguente:

sample_data_output

Si noti che le funzionalità generate hanno il prefisso _automl_ anteposto ai relativi nomi delle colonne. AutoML usa in genere questo prefisso per distinguere le funzionalità di input dalle funzionalità di progettazione.

Passaggi successivi