Dati di serie temporali - Amazon SageMaker AI

Dati di serie temporali

I dati di serie temporali si riferiscono ai dati che possono essere caricati in un dataframe tridimensionale. Nel frame di ogni timestamp, ogni riga rappresenta un record di destinazione e ogni record di destinazione ha una o più colonne correlate. I valori all'interno di ogni cella del frame di dati possono essere di tipo numerico, categorico o testuale.

Prerequisiti del set di dati di serie temporali

Prima dell’analisi, completa le fasi di pre-elaborazione necessarie per preparare i dati, come la pulizia dei dati o l’ingegneria delle caratteristiche. È possibile fornire uno o più set di dati. Se fornisci più set di dati, utilizza uno dei metodi seguenti per inviarli al processo di elaborazione di SageMaker Clarify:

  • Utilizzate un ProcessingInput chiamato dataset o la configurazione di analisi dataset_uri per specificare il set di dati principale. Per ulteriori informazioni su dataset_uri, consulta l’elenco di parametri in File di configurazione dell’analisi.

  • Utilizza il parametro baseline fornito nel file di configurazione dell'analisi. Il set di dati baseline è necessario per static_covariates, se presente. Per ulteriori informazioni sul file di configurazione dell’analisi, inclusi gli esempi, consulta File di configurazione dell’analisi.

Questa tabella elenca i formati di dati supportati, le relative estensioni di file e i tipi MIME.

Formato dei dati Estensione di file Tipo MIME

item_records

json

application/json

timestamp_records

json

application/json

columns

json

application/json

JSON è un formato flessibile che può rappresentare qualsiasi livello di complessità nei dati strutturati. Come mostrato nella tabella, SageMaker Clarify supporta i formati item_records, timestamp_records e columns.

Esempi di configurazione dei set di dati di serie temporali

Questa guida mostra come impostare una configurazione dell’analisi con time_series_data_config per i dati di serie temporali in formato JSON. Supponiamo di avere un set di dati con due elementi, ciascuno con un timestamp (t), una serie temporale di destinazione (x), due serie temporali correlate (r) e due covariate statiche (u) come descritto di seguito:

t1 = [0,1,2], t2 = [2,3]

x1 = [5,6,4], x2 = [0,4]

r1 = [0,1,0], r21 = [1,1]

r12 = [0,0,0], r22 = [1,0]

u11 = -1, u21 = 0

u12 = 1, u22 = 2

Puoi codificare il set di dati utilizzando time_series_data_config in tre modi diversi, a seconda del valore dataset_format. Le sezioni seguenti descrivono questi tre metodi.

Configurazione dei dati di serie temporali: quando dataset_format è columns.

L’esempio seguente utilizza il valore columns per dataset_format. Il file JSON seguente rappresenta il set di dati precedente.

{ "ids": [1, 1, 1, 2, 2], "timestamps": [0, 1, 2, 2, 3], # t "target_ts": [5, 6, 4, 0, 4], # x "rts1": [0, 1, 0, 1, 1], # r1 "rts2": [0, 0, 0, 1, 0], # r2 "scv1": [-1, -1, -1, 0, 0], # u1 "scv2": [1, 1, 1, 2, 2], # u2 }

Nota che gli ID elemento vengono ripetuti nel campo ids. La corretta implementazione di time_series_data_config è mostrata di seguito:

"time_series_data_config": { "item_id": "ids", "timestamp": "timestamps", "target_time_series": "target_ts", "related_time_series": ["rts1", "rts2"], "static_covariates": ["scv1", "scv2"], "dataset_format": "columns" }

Configurazione dei dati di serie temporali: quando dataset_format è item_records.

L’esempio seguente utilizza il valore item_records per dataset_format. Il seguente file JSON rappresenta il set di dati.

[ { "id": 1, "scv1": -1, "scv2": 1, "timeseries": [ {"timestamp": 0, "target_ts": 5, "rts1": 0, "rts2": 0}, {"timestamp": 1, "target_ts": 6, "rts1": 1, "rts2": 0}, {"timestamp": 2, "target_ts": 4, "rts1": 0, "rts2": 0} ] }, { "id": 2, "scv1": 0, "scv2": 2, "timeseries": [ {"timestamp": 2, "target_ts": 0, "rts1": 1, "rts2": 1}, {"timestamp": 3, "target_ts": 4, "rts1": 1, "rts2": 0} ] } ]

Ogni elemento è rappresentato come una voce separata nel file JSON. Il frammento seguente mostra il valore time_series_data_config corrispondente (che utilizza JMESPath).

"time_series_data_config": { "item_id": "[*].id", "timestamp": "[*].timeseries[].timestamp", "target_time_series": "[*].timeseries[].target_ts", "related_time_series": ["[*].timeseries[].rts1", "[*].timeseries[].rts2"], "static_covariates": ["[*].scv1", "[*].scv2"], "dataset_format": "item_records" }

Configurazione dei dati di serie temporali: quando dataset_format è timestamp_record.

L’esempio seguente utilizza il valore timestamp_record per dataset_format. Il file JSON seguente rappresenta il set di dati precedente.

[ {"id": 1, "timestamp": 0, "target_ts": 5, "rts1": 0, "rts2": 0, "svc1": -1, "svc2": 1}, {"id": 1, "timestamp": 1, "target_ts": 6, "rts1": 1, "rts2": 0, "svc1": -1, "svc2": 1}, {"id": 1, "timestamp": 2, "target_ts": 4, "rts1": 0, "rts2": 0, "svc1": -1, "svc2": 1}, {"id": 2, "timestamp": 2, "target_ts": 0, "rts1": 1, "rts2": 1, "svc1": 0, "svc2": 2}, {"id": 2, "timestamp": 3, "target_ts": 4, "rts1": 1, "rts2": 0, "svc1": 0, "svc2": 2}, ]

Ogni voce del file JSON rappresenta un singolo timestamp e corrisponde a un singolo elemento. L’implementazione di time_series_data_config è mostrata di seguito:

{ "item_id": "[*].id", "timestamp": "[*].timestamp", "target_time_series": "[*].target_ts", "related_time_series": ["[*].rts1"], "static_covariates": ["[*].scv1"], "dataset_format": "timestamp_records" }