Crea un job AutoML per la previsione di serie temporali utilizzando l'API - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea un job AutoML per la previsione di serie temporali utilizzando l'API

La previsione nel machine learning si riferisce al processo di previsione di risultati o tendenze future sulla base di dati e modelli storici. Analizzando i dati di serie temporali passate e identificando i modelli sottostanti, gli algoritmi di machine learning possono fare previsioni e fornire informazioni preziose sul comportamento futuro. Nella previsione, l'obiettivo è sviluppare modelli in grado di catturare con precisione la relazione tra le variabili di input e la variabile target nel tempo. Ciò comporta l'esame di vari fattori come tendenze, stagionalità e altri modelli pertinenti all'interno dei dati. Le informazioni raccolte vengono quindi utilizzate per addestrare un modello di machine learning. Il modello addestrato è in grado di generare previsioni prendendo nuovi dati di input e applicando i modelli e le relazioni appresi. Può fornire previsioni per un'ampia gamma di casi d'uso, come proiezioni di vendita, tendenze del mercato azionario, previsioni meteorologiche, previsioni della domanda e molti altri.

Le seguenti istruzioni mostrano come creare un job Amazon SageMaker Autopilot come esperimento pilota per tipi di problemi di previsione di serie temporali utilizzando API Reference. SageMaker

Nota

Attività come la classificazione di testo e immagini, la previsione di serie temporali e la messa a punto di modelli linguistici di grandi dimensioni sono disponibili esclusivamente tramite la versione 2 dell'API REST di AutoML. Se il linguaggio che preferisci è Python, puoi fare riferimento AWS SDK for Python (Boto3)o direttamente all'oggetto AutoMLV2 di Amazon SageMaker Python SDK.

Gli utenti che preferiscono la comodità di un'interfaccia utente possono utilizzare Amazon SageMaker Canvas per accedere a modelli pre-addestrati e modelli di base di intelligenza artificiale generativa o creare modelli personalizzati su misura per testi specifici, classificazione delle immagini, esigenze di previsione o intelligenza artificiale generativa.

Puoi creare un esperimento di previsione delle serie temporali Autopilot a livello di codice chiamando l'API CreateAutoMLJobV2in qualsiasi lingua supportata da Amazon Autopilot o da. SageMaker AWS CLI

Per informazioni su come questa azione API si traduce in una funzione nella lingua che preferisci, consulta Vedi anche di CreateAutoMLJobV2 e seleziona un SDK. Ad esempio, per gli utenti di Python, vedi la sintassi completa della richiesta di create_auto_ml_job_v2 in AWS SDK for Python (Boto3).

Autopilot addestra diversi modelli candidati con le serie temporali target, quindi seleziona un modello di previsione ottimale per un determinato parametro oggettivo. Una volta formati i tuoi candidati modello, puoi trovare i migliori parametri dei candidati nella risposta a DescribeAutoMLJobV2 su BestCandidate.

Le sezioni seguenti definiscono i parametri di richiesta di input obbligatori e facoltativi per l'API CreateAutoMLJobV2 utilizzata nella previsione delle serie temporali.

Nota

Fai riferimento al notebook Time-Series Forecasting with Amazon SageMaker Autopilot per un esempio pratico e pratico di previsione delle serie temporali. In questo notebook, usi Amazon SageMaker Autopilot per addestrare un modello di serie temporali e produrre previsioni utilizzando il modello addestrato. Il notebook fornisce istruzioni per recuperare un set di dati cronologici tabulari già pronto all'uso su Amazon S3.

Prerequisiti

Prima di utilizzare Autopilot per creare un esperimento di previsione di serie temporali, assicurati di: SageMaker

  • Preparare il set di dati delle serie temporali. La preparazione del set di dati prevede la raccolta di dati pertinenti da varie fonti, la pulizia e il filtraggio per rimuovere dati di disturbo e incongruenze e l'organizzazione in un formato strutturato. Vedi Formato dei set di dati delle serie temporali e metodi di riempimento dei valori mancanti per saperne di più sui requisiti dei formati delle serie temporali in Autopilot. Facoltativamente, puoi integrare il tuo set di dati con il calendario delle festività nazionali del Paese di tua scelta per acquisire i modelli associati. Per ulteriori informazioni sui calendari delle festività, vedere Calendari nazionali delle festività.

    Nota

    Ti consigliamo di fornire almeno 3-5 punti dati storici per ogni data point futuro che desideri prevedere. Ad esempio, per prevedere con 7 giorni di anticipo (orizzonte di 1 settimana) sulla base di dati giornalieri, addestra il modello su un minimo di 21-35 giorni di dati storici. Assicurati di fornire dati sufficienti per acquisire modelli stagionali e ricorrenti.

  • Inserisci i dati della serie temporale in un bucket Amazon S3.

  • Concedi l'accesso completo al bucket Amazon S3 contenente i dati di input per il ruolo di SageMaker esecuzione utilizzato per eseguire l'esperimento. Fatto ciò, è possibile utilizzare l'ARN di questo ruolo di esecuzione nelle richieste API Autopilot.

    • Per informazioni sul recupero del ruolo di SageMaker esecuzione, consulta. Ottieni ruolo di esecuzione

    • Per informazioni sulla concessione delle autorizzazioni SageMaker del ruolo di esecuzione per accedere a uno o più bucket specifici in Amazon S3, consulta Aggiungere ulteriori autorizzazioni Amazon S3 a un ruolo di esecuzione in. SageMaker Crea ruolo di esecuzione

Parametri obbligatori

Quando chiami CreateAutoMLJobV2 per creare un esperimento Autopilot per la previsione di serie temporali, devi fornire i seguenti valori:

  • Un AutoMLJobName per specificare il nome del processo. Il nome deve essere di tipo string con una lunghezza minima di 1 carattere e una lunghezza massima di 32.

  • Almeno un AutoMLJobChannel in AutoMLJobInputDataConfig in cui specifichi il nome del bucket Amazon S3 che contiene i tuoi dati. Facoltativamente, puoi specificare i tipi di contenuto (file CSV o Parquet) e di compressione (gZip).

  • Un AutoMLProblemTypeConfig di tipo TimeSeriesForecastingJobConfig per configurare le impostazioni del processo di previsione delle serie temporali. In particolare, è necessario specificare:

    • La frequenza delle previsioni, che si riferisce alla granularità desiderata (oraria, giornaliera, mensile, ecc.) della previsione.

      Gli intervalli validi sono un numero intero seguito da Y (anno), M (mese), W (settimana), D (giorno), H (ora) e min (minuti). Ad esempio, 1D indica ogni giorno e 15min indica ogni 15 minuti. Il valore di una frequenza non deve sovrapporsi alla successiva frequenza più grande. Ad esempio, è necessario utilizzare una frequenza di 1H anziché di 60min.

      Di seguito sono riportati i valori validi per ciascuna frequenza:

      • Minuti: 1-59

      • Ora: 1-23

      • Giorno: 1-6

      • Settimana: 1-4

      • Mese: 1-11

      • Anno: 1

    • L'orizzonte delle previsioni nella tua previsione, che si riferisce al numero di fasi temporali previste dal modello. L'orizzonte di previsione è anche chiamato lunghezza della previsione. L'orizzonte di previsione massimo è il minore tra 500 fasi temporali o 1/4 delle fasi temporali del set di dati.

    • Un TimeSeriesConfig in cui definisci lo schema del tuo set di dati per mappare le intestazioni delle colonne alla tua previsione specificando:

      • Un TargetAttributeName: La colonna che contiene i dati storici del campo di destinazione da prevedere.

      • Un TimestampAttributeName: La colonna che contiene un momento temporale in cui viene registrato il valore target di un determinato elemento.

      • Un ItemIdentifierAttributeName: La colonna che contiene gli identificatori degli elementi per i quali si desidera prevedere il valore di target.

    Di seguito è riportato un esempio di questi parametri. In questo esempio, stai impostando una previsione giornaliera per la quantità o il livello di domanda previsti di articoli specifici per un periodo di 20 giorni.

    "AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },
  • Un OutputDataConfig per specificare il percorso di output di Amazon S3 per archiviare gli artefatti del processo AutoML.

  • Un RoleArn per specificare l'ARN del ruolo utilizzato per accedere ai dati. È possibile utilizzare l'ARN del ruolo di esecuzione a cui hai concesso l'accesso ai tuoi dati.

Tutti gli altri parametri sono facoltativi. Ad esempio, è possibile impostare quantili di previsione specifici, scegliere un metodo di riempimento per i valori mancanti nel set di dati o definire come aggregare i dati che non sono in linea con la frequenza di previsione. Per informazioni su come impostare questi parametri aggiuntivi, consulta Parametri facoltativi.

Parametri facoltativi

Le sezioni seguenti forniscono dettagli su alcuni parametri opzionali che è possibile passare al processo AutoML di previsione delle serie temporali.

Per impostazione predefinita, il job Autopilot addestra un elenco predefinito di algoritmi sul set di dati. Tuttavia, puoi fornire un sottoinsieme della selezione predefinita di algoritmi.

Per la previsione di serie temporali, è necessario scegliere TimeSeriesForecastingJobConfig come tipo di. AutoMLProblemTypeConfig

Quindi, puoi specificare un array di selected AutoMLAlgorithms nell'AlgorithmsConfigattributo di CandidateGenerationConfig.

Quello che segue è un esempio di AlgorithmsConfig attributo che elenca esattamente tre algoritmi («cnn-qr», «prophet», «arima») nel suo campo. AutoMLAlgorithms

{ "AutoMLProblemTypeConfig": { "TimeSeriesForecastingJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["cnn-qr", "prophet", "arima"]} ] }, }, }, }

Per l'elenco degli algoritmi disponibili per la previsione delle serie temporali, vedere. AutoMLAlgorithms Per informazioni dettagliate su ciascun algoritmo, vedere Supporto di algoritmi per la previsione di serie temporali.

Autopilot addestra 6 modelli candidati con le serie temporali target, quindi combina questi modelli utilizzando un metodo di sovrapposizione per creare un modello di previsione ottimale per un determinato parametro oggettivo. Ogni modello di previsione Autopilot genera una previsione probabilistica producendo previsioni con quantili compresi tra P1 e P99. Questi quantili vengono utilizzati per tenere conto dell'incertezza delle previsioni. Per impostazione predefinita, verranno generate previsioni per 0,1 (p10), 0,5 (p50) e 0,9 (p90). È possibile scegliere di specificare i propri quantili.

In Autopilot, puoi specificare fino a cinque quantili di previsione da 0,01 (p1) a 0,99 (p99), con incrementi di 0,01 o superiori nell'attributo Config. ForecastQuantiles TimeSeries ForecastingJob

Nell'esempio seguente, si sta impostando una previsione giornaliera del 10°, 25°, 50°, 75° e 90° percentile per la quantità o il livello di domanda previsti di articoli specifici in un periodo di 20 giorni.

"AutoMLProblemTypeConfig": { "ForecastFrequency": "D", "ForecastHorizon": 20, "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"], "TimeSeriesConfig": { "TargetAttributeName": "demand", "TimestampAttributeName": "timestamp", "ItemIdentifierAttributeName": "item_id" },

Per creare un modello previsionale (definito anche come il miglior modello candidato dell'esperimento), è necessario specificare una frequenza di previsione. La frequenza delle previsioni determina la frequenza delle anticipazioni. Ad esempio, previsioni di vendita mensili. Il modello migliore Autopilot può generare previsioni per frequenze di dati superiori alla frequenza con cui vengono registrati i dati.

Durante l'addestramento, Autopilot aggrega tutti i dati che non sono in linea con la frequenza di previsione specificata. Ad esempio, potresti avere alcuni dati giornalieri ma specificare una frequenza di previsione settimanale. Autopilot allinea i dati giornalieri in base alla settimana a cui appartengono. Autopilot li combina quindi in un unico record per ogni settimana.

Durante l'aggregazione, il metodo di trasformazione predefinito consiste nel sommare i dati. È possibile configurare l'aggregazione quando si crea il job AutoML nell'attributo Transformations Config. TimeSeries ForecastingJob I metodi di aggregazione supportati sono sum (impostazione predefinita), avg, first, min, max. L'aggregazione è supportata solo per la colonna di destinazione.

Nell'esempio seguente, configuri l'aggregazione per calcolare la media delle singole previsioni promozionali e fornire i valori finali aggregati delle previsioni.

"Transformations": { "Aggregation": { "promo": "avg" } }

Autopilot fornisce una serie di metodi di riempimento per gestire i valori mancanti nella colonna di destinazione e in altre colonne numeriche dei set di dati delle serie temporali. Per informazioni sull'elenco dei metodi di riempimento supportati e sulla relativa logica di riempimento disponibile, vedere Gestione dei valori mancanti.

La strategia di riempimento viene configurata nell'Transformationsattributo TimeSeriesForecastingJobConfig durante la creazione del job AutoML.

Per impostare un metodo di riempimento, devi fornire una coppia chiave-valore:

  • La chiave è il nome della colonna per la quale desideri specificare il metodo di riempimento.

  • Il valore associato alla chiave è un oggetto che definisce la strategia di riempimento di quella colonna.

È possibile specificare più metodi di riempimento di una singola colonna.

Per impostare un valore specifico del metodo di riempimento, è necessario impostare il parametro di riempimento sul valore del metodo di riempimento desiderato (ad esempio "backfill" : "value") e definire il valore di riempimento effettivo in un parametro aggiuntivo con il suffisso «_value». Ad esempio, per impostare backfill a un valore di 2, è necessario includere due parametri: "backfill": "value" e "backfill_value":"2".

Nell'esempio seguente, si specifica la strategia di riempimento per la colonna di dati incompleti, «prezzo», nel modo seguente: tutti i valori mancanti tra la prima coordinata di un elemento e l'ultima vengono impostati a 0, dopo di che tutti i valori mancanti vengono riempiti con il valore 2 fino alla data di fine del set di dati.

"Transformations": { "Filling": { "price": { "middlefill" : "zero", "backfill" : "value", "backfill_value": "2" } } }

Autopilot produce parametri di precisione per valutare i modelli candidati e aiutarti a scegliere quali utilizzare per generare previsioni. Quando esegui un esperimento di previsione di serie temporali, puoi scegliere AutoML per consentire ad Autopilot di ottimizzare il predittore per te, oppure puoi scegliere manualmente un algoritmo per il tuo predittore.

Per impostazione predefinita, Autopilot utilizza la perdita quantile ponderata media. Tuttavia, puoi configurare la metrica dell'obiettivo quando crei il tuo lavoro AutoML nell'MetricNameattributo di AutoML. JobObjective

Per l'elenco degli algoritmi disponibili, vedere Supporto di algoritmi per la previsione di serie temporali.

In Autopilot, è possibile incorporare nelle proprie serie storiche un set di dati progettato con funzionalità di informazioni sulle festività nazionali. Autopilot fornisce supporto nativo per i calendari delle festività di oltre 250 Paesi. Dopo aver scelto un Paese, durante l'addestramento Autopilot applica il calendario delle festività di quel Paese a ogni elemento del set di dati. Ciò consente al modello di identificare i modelli associati a festività specifiche.

È possibile abilitare la funzionalità delle festività quando si crea il job AutoML passando un oggetto HolidayConfigAttributes all'HolidayConfigattributo di Config. TimeSeries ForecastingJob L'oggetto HolidayConfigAttributes contiene l'attributo a due lettere CountryCode che determina il Paese del calendario delle festività nazionali pubbliche utilizzato per aumentare il set di dati delle serie temporali.

Fai riferimento a Codice del paese per l'elenco dei calendari supportati e il codice del Paese corrispondente.

Autopilot ti consente di implementare automaticamente il tuo modello di previsione su un endpoint. Per abilitare l’implementazione automatica per il miglior modello candidato di un processo AutoML, includi un ModelDeployConfig nella richiesta di processo AutoML. Ciò consente l'implementazione del modello migliore su un endpoint. SageMaker Di seguito sono riportate le configurazioni disponibili per la personalizzazione.