匯入資料集 - Amazon Forecast

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

匯入資料集

「資料集」包含用來培訓預測器的資料。您可以建立一或多個 Amazon Forecast 資料集,然後將訓練資料匯入其中。資料集群組是互補資料集的集合,詳細說明了一系列時間內變更的參數集。建立資料集群組之後,您可以用它培訓預測器。

每個資料集群組最多可有 3 個資料集,每一個都是資料集類型:目標時間序列、相關時間序列和項目中繼資料。

若要建立和管理 Forecast 資料集和資料集群組,您可以使用 Forecast 主控台、 AWS Command Line Interface (AWS CLI) 或 AWS SDK。

例如 Forecast 資料集,請參閱 Amazon Forecast 範例 GitHub儲存庫

資料集

若要建立和管理 Forecast 資料集,您可以使用 Forecast API,包括CreateDatasetDescribeDataset作業。如需 Forecast API 的完整清單,請參閱API 參考

建立資料集時,您需提供資訊,如下所示:

  • 您記錄資料的頻率/間隔。例如,您可能每週彙總和記錄零售項目銷售額。在 入門 練習中,您會使用每小時使用的平均電力。

  • 預測格式 (「定義域」) 和資料集類型 (定義域內)。資料集網域會指定您要執行的 Forecast 類型,而資料集類型則可協助您將訓練資料組織成預測友善類別。

  • 資料集「結構描述」。結構描述會映射資料集的欄標頭。例如,當監控有需求時,您可能已收集多個商店中某個項目的每小時銷售資料。在本案例中,您的結構描述會定義時間戳記、位置和每小時銷售,從左到右依序出現在您的培訓資料檔案中。結構描述也會定義各欄的資料類型,例如 stringinteger

  • 地理位置和時區資訊。地理位置屬性是在具有屬性類型geolocation的模式中定義的。時區資訊是使用 CreateDatasetImportJob作業定義的。必須同時包含地理位置和時區資料,才能啟用天氣指數

「Forecast」資料集中的每個資料欄代表預測維度功能。預測維度描述資料不會隨時間變更的層面,例如 storelocation。預測功能包含資料中會隨時間變更的任何參數,例如 pricepromotion。有些維度在目標時間序列和相關時間序列資料集中為必要,例如 timestampitemId

資料集網域和資料集類型

建立「Forecast」資料集時,您可以選擇網域和資料集類型。Forecast 為許多使用案例提供網域,例如預測零售需求或網路流量。您也可以建立自訂定義域。如需 Forecast 網域的完整清單,請參閱預先定義的資料集網域和資料集類型

在每個網域中,ProForecast pt 使用者可以指定下列資料集類型:

  • 目標時間序列資料集 (必要) — 當訓練資料是時間序列包含您要產生預測的欄位時,請使用此資料集類型。此欄位稱為「目標欄位」

  • 相關時間序列資料集 (選用) — 當訓練資料是時間序列但包含目標欄位時,請選擇此資料集類型。例如,如果您要預測項目需求,相關時間序列資料集可能會以 price (而不是 demand) 為欄位。

  • 項目中繼資料資料集 (選用) — 當訓練資料不是時間序列資料,但包含目標時間序列或相關時間序列資料集中項目的中繼資料資訊時,請選擇此資料集類型。例如,如果您要預測項目需求,則項目中繼資料資料集可能具有colorbrand作為維度。

    當您使用 CNN-QRDeep AR + 演算法時,Forecast 只會考量項目中繼資料資料集類型所提供的資料。

    項目中繼資料在冷啟動預測案例中特別有用,其中您只有少量直接歷史資料可以進行預測,但是有具備類似中繼資料屬性之項目的歷史資料。當您包含料號中繼資料時,「Forecast」會根據類似的時間序列建立冷啟動預測,以建立更準確的預測。

您可能會建立多個資料集,視培訓資料資訊以及您想要預測的內容而定。

例如,假設您想要產生零售商品的需求預測,例如鞋子和襪子。您可以在 RETAIL 網域中建立以下資料集:

  • 目標時間序列資料集 — 包含零售料號 (item_idtimestamp和目標欄位demand) 的歷史時間序列需求資料。因為它會指定您要預測的目標欄位,所以您的資料集群組中至少必須有一個目標時間序列資料集。

    您也可以在目標時間序列資料集中新增最多 10 個其他維度。如果您的資料集群組只包含一個目標時間序列資料集,則您只能建立精細程度為項目層級或預測維度層級的預測。如需詳細資訊,請參閱 CreatePredictor

  • 相關時間序列資料集 — 包含目標欄位以外的歷史時間序列資料,例如pricerevenue。因為相關時間序列資料必須映射至目標時間序列資料,所以每個相關時間序列資料集都必須包含相同的識別欄位。在 RETAIL 定義域中,它們可能會是 item_idtimestamp

    相關的時間序列資料集可能包含資料,這些資料可以精簡您目標時間序列資料集所產生的預測。例如,您可能會在相關時間序列資料集中想要產生預測的未來日期中,包含 price 資料。通過這種方式,Forecast 可以使用額外的上下文進行預測。如需詳細資訊,請參閱 使用相關時間序列資料集

  • 項目中繼資料資料集 — 包含零售商品的中繼資料。中繼資料範例包括 brandcategorycolorgenre

具有預測維度的範例資料集

延續上例,假設您想要根據商店之前的銷售來預測鞋子和襪子的需求。在以下目標時間序列資料集中,store 是時間序列預測維度,而 demand 是目標欄位。襪子在兩個地點的商家販售 (NYC 和 SFO),鞋子僅在 ORD 販售。

此資料表的前三列包含 NYC、SFO 和 ORD 店家第一項可用的銷售資料。最後三列包含每家商店最後記錄的銷售資料。... 資料列代表從第一個到最後一個項目之間記錄的所有項目銷售資料。

timestamp item_id store demand
2019-01-01 socks NYC 25
2019-01-05 socks SFO 45
2019-02-01 shoes ORD 10
...
2019-06-01 socks NYC 100
2019-06-05 socks SFO 5
2019-07-01 shoes ORD 50

資料集結構描述

每個資料集都需要有結構描述,這是您的培訓資料中,使用者提供的欄位 JSON 對應。您可在此列出要包含在資料集中的必要和選用維度和功能。

如果您的資料集包含地理位置屬性,請使用屬性類型geolocation在結構描述中定義屬性。如需詳細資訊,請參閱新增地理位置資訊。若要套用天氣指數,您必須在目標時間序列和任何相關的時間序列資料集中包含地理位置屬性。

有些定義域有建議包含的選用維度。選用維度會列在本指南後文的每個定義域描述中。如需範例,請參閱RETAIL 網域。所有選用維度都採用資料類型 string

每個資料集都需要結構描述。以下是上述範例目標時間序列資料集的隨附結構描述。

{ "attributes": [ { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "store", "AttributeType": "string" }, { "AttributeName": "demand", "AttributeType": "float" } ] }

當您將訓練資料上傳至使用此結構描述的資料集時,「Forecasttimestamp」會假設該欄item_id位為欄 1、欄位是欄 2、欄store位是第 3 欄,而目標欄demand位 (目標欄位) 為欄 4。

針對相關時間序列資料集類型,所有相關功能都必須具有浮點數或整數屬性類型。針對項目中繼資料集類型,所有功能都必須具有字串屬性類型。如需詳細資訊,請參閱 SchemaAttribute

注意

資料集中的每個資料行都需要使用attributeNameattributeType配對。Forecast 會保留一些不能用作結構描述屬性名稱的名稱。如需保留名稱的清單,請參閱保留欄位名稱

資料集群組

「資料集群組」是一到三個附贈的資料集集合,每一個都是資料集類型。您將資料集匯入資料集群組,然後使用資料集群組來培訓預測器。

Forecast 包括以下操作來創建數據集組並向其中添加數據集:

解決資料收集頻率的衝突

Forecast 可以使用與您在CreateDataset作業中指定的資料頻率不一致的資料來訓練預測值。例如,即使某些資料未在小時頂端加上時間戳記 (02:20, 02:45),您也可以按小時間隔匯入記錄的資料。Forecast 會使用您指定的資料頻率來瞭解您的資料。然後,「Forecast」會在預測值訓練期間彙總資料。如需更多資訊,請參閱不同預測頻率的資料彙總