時間序列資料 - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

時間序列資料

時間序列資料是指可以載入到二維資料框架中的資料。在框架的每個時間戳記中,每一列代表一筆目標記錄,而每一筆目標記錄都有一個或多個相關資料欄。每個資料框儲存格內的值可以是數值、分類或文字資料類型。

時間序列資料集先決條件

在分析之前,請完成必要的預先處理步驟以準備您的資料,例如資料清除或特徵工程。您可以提供一或多個資料集。如果您提供多個資料集,請使用下列其中一個方法,將它們提供給 SageMaker Clarify 處理任務。

  • 使用命名為 datasetProcessingInput 或分析組態 dataset_uri 來指定主資料集。如需 dataset_uri 的詳細資訊,請參閱 分析組態檔案 中的參數清單。

  • 使用分析組態檔案中提供的 baseline 參數。static_covariates 需要基準資料集,如果存在的話。如需分析組態檔案的詳細資訊,請參閱 分析組態檔案

下表列出支援的資料格式、其副檔名和 MIME 類型。

資料格式 副檔名 MIME 類型

item_records

json

application/json

timestamp_records

json

application/json

columns

json

application/json

JSON 是一種靈活的格式,可在您的結構化資料中代表任何複雜性層級。如資料表所示,SageMaker Clarify 支援格式 item_recordstimestamp_recordscolumns

時間序列資料集組態範例

本節說明如何針對 JSON 格式的時間序列資料使用 time_series_data_config 設定分析組態。假設您有一個資料集含有兩個項目,每個項目都有時間戳記 (t)、目標時間序列 (x)、兩個相關時間序列 (r),以及兩個靜態共變數 (u),如下所示:

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

您可以採取三種不同的方法使用 time_series_data_config 來編碼資料集,取決於 dataset_format。下列幾節會描述每一種方法。

dataset_formatcolumns 時的時間序列資料組態

以下範例會將 columns 值用於 dataset_format。下列 JSON 檔案代表先前的資料集。

{ "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 }

請注意,項目 ID 會在 ids 欄位中重複。time_series_data_config 的正確實作如下所示:

"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" }

dataset_formatitem_records 時的時間序列資料組態

以下範例會將 item_records 值用於 dataset_format。下列 JSON 檔案代表資料集。

[ { "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} ] } ]

每個項目在 JSON 中會以個別的項目表示。下列程式碼片段顯示對應的 time_series_data_config (使用 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" }

dataset_formattimestamp_record 時的時間序列資料組態

以下範例會將 timestamp_record 值用於 dataset_format。下列 JSON 檔案代表先前的資料集。

[ {"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}, ]

JSON 的每個項目代表單一時間戳記,並對應至單一項目。實作 time_series_data_config 如下所示:

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