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
dataseto la configurazione di analisidataset_uriper specificare il set di dati principale. Per ulteriori informazioni sudataset_uri, consulta l’elenco di parametri in File di configurazione dell’analisi. -
Utilizza il parametro
baselinefornito nel file di configurazione dell'analisi. Il set di dati baseline è necessario perstatic_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 |
|---|---|---|
|
|
json |
|
|
|
json |
|
|
|
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" }