

 Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用服務。[進一步了解」](https://aws.amazon.com/blogs/machine-learning/transition-your-amazon-forecast-usage-to-amazon-sagemaker-canvas/)

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

# 匯入資料集
<a name="howitworks-datasets-groups"></a>

「資料集」**包含用來培訓[預測器](howitworks-predictor.md)的資料。您可以建立一或多個 Amazon Forecast 資料集，並將訓練資料匯入其中。*資料集群組*是互補資料集的集合，詳細說明一系列期間內變更參數的集合。建立資料集群組之後，您可以用它培訓預測器。

每個資料集群組最多可有 3 個資料集，每一個都是[資料集](#howitworks-dataset-domainstypes)類型：目標時間序列、相關時間序列和項目中繼資料。

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

如需 Forecast 資料集範例，請參閱 [Amazon Forecast 範例 GitHub 儲存庫](https://github.com/aws-samples/amazon-forecast-samples)。

**Topics**
+ [資料集](#howitworks-dataset)
+ [資料集群組](#howitworks-datasetgroup)
+ [解決資料收集頻率的衝突](#howitworks-data-alignment)
+ [使用相關時間序列資料集](related-time-series-datasets.md)
+ [使用項目中繼資料集](item-metadata-datasets.md)
+ [預先定義的資料集網域和資料集類型](howitworks-domains-ds-types.md)
+ [更新資料](updating-data.md)
+ [處理遺失值](howitworks-missing-values.md)
+ [預測的資料集準則](dataset-import-guidelines-troubleshooting.md)

## 資料集
<a name="howitworks-dataset"></a>

若要建立和管理預測資料集，您可以使用預測 APIs，包括 [CreateDataset](API_CreateDataset.md)和 [DescribeDataset](API_DescribeDataset.md)操作。如需預測 APIs的完整清單，請參閱 [API 參考](api-reference.md)。

建立資料集時，您需提供資訊，如下所示：
+ 您記錄資料的頻率/間隔。例如，您可能每週彙總和記錄零售項目銷售額。在 [開始使用](getting-started.md) 練習中，您會使用每小時使用的平均電力。
+ 預測格式 (「定義域」**) 和資料集類型 (定義域內)。資料集網域會指定您要執行的預測類型，而資料集類型可協助您將訓練資料組織成易於預測的類別。
+ 資料集「結構描述」**。結構描述會映射資料集的欄標頭。例如，當監控有需求時，您可能已收集多個商店中某個項目的每小時銷售資料。在本案例中，您的結構描述會定義時間戳記、位置和每小時銷售，從左到右依序出現在您的培訓資料檔案中。結構描述也會定義各欄的資料類型，例如 `string` 或 `integer`。
+ 地理位置和時區資訊。地理位置屬性是在屬性類型為 的結構描述中定義`geolocation`。時區資訊是使用 [ CreateDatasetImportJob](API_CreateDatasetImportJob.md) 操作來定義。必須包含地理位置和時區資料，才能啟用[天氣索引。](weather.md)

預測資料集中的每個資料欄代表預測*維度*或*功能*。預測維度描述資料不會隨時間變更的層面，例如 `store` 或 `location`。預測功能包含資料中會隨時間變更的任何參數，例如 `price` 或 `promotion`。有些維度在目標時間序列和相關時間序列資料集中為必要，例如 `timestamp` 或 `itemId`。

### 資料集網域和資料集類型
<a name="howitworks-dataset-domainstypes"></a>

當您建立預測資料集時，您可以選擇網域和資料集類型。預測提供許多使用案例的網域，例如預測零售需求或 Web 流量。您也可以建立自訂定義域。如需預測網域的完整清單，請參閱 [預先定義的資料集網域和資料集類型](howitworks-domains-ds-types.md)。

在每個網域中，預測使用者可以指定下列類型的資料集：
+ 目標時間序列資料集 （必要） – 當您的訓練資料是時間序列*且*包含您要產生預測的欄位時，請使用此資料集類型。此欄位稱為「目標欄位」**。
+ 相關時間序列資料集 （選用） – 當您的訓練資料是時間序列，但*不包含*目標欄位時，請選擇此資料集類型。例如，如果您要預測項目需求，相關時間序列資料集可能會以 `price` (而不是 `demand`) 為欄位。
+ 項目中繼資料資料集 （選用） – 當您的訓練資料*不是*時間序列資料，但包含目標時間序列或相關時間序列資料集中項目的中繼資料資訊時，請選擇此資料集類型。例如，如果您預測項目需求，項目中繼資料資料集可能具有 `color`或 `brand`作為維度。

  當您使用 [CNN-QR](aws-forecast-algo-cnnqr.md) 或 [DeepAR\+](aws-forecast-recipe-deeparplus.md) 演算法時，預測只會考慮項目中繼資料資料集類型所提供的資料。

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

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

例如，假設您想要產生零售商品的需求預測，例如鞋子和襪子。您可以在 RETAIL 網域中建立以下資料集：
+ 目標時間序列資料集 – 包含零售項目的歷史時間序列需求資料 (`item_id`、 `timestamp`和目標欄位 `demand`)。因為它會指定您要預測的目標欄位，所以您的資料集群組中至少必須有一個目標時間序列資料集。

  您也可以在目標時間序列資料集中新增最多 10 個其他維度。如果您的資料集群組只包含一個目標時間序列資料集，則您只能建立精細程度為項目層級或預測維度層級的預測。如需詳細資訊，請參閱[CreatePredictor](API_CreatePredictor.md)。
+ 相關時間序列資料集 – 包括目標欄位以外的歷史時間序列資料，例如 `price`或 `revenue`。因為相關時間序列資料必須映射至目標時間序列資料，所以每個相關時間序列資料集都必須包含相同的識別欄位。在 RETAIL 定義域中，它們可能會是 `item_id` 和 `timestamp`。

  相關的時間序列資料集可能包含資料，這些資料可以精簡您目標時間序列資料集所產生的預測。例如，您可能會在相關時間序列資料集中想要產生預測的未來日期中，包含 `price` 資料。如此一來，預測可以利用額外的內容維度進行預測。如需詳細資訊，請參閱[使用相關時間序列資料集](related-time-series-datasets.md)。
+ 項目中繼資料資料集 – 包含零售項目的中繼資料。中繼資料範例包括 `brand`、`category`、`color` 和 `genre`。

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

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

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


<table>
<thead>
  <tr><th>timestamp</th><th>item\_id</th><th>store</th><th>demand</th></tr>
</thead>
<tbody>
  <tr><td>2019-01-01</td><td>socks</td><td>NYC</td><td> 25 </td></tr>
  <tr><td>2019-01-05</td><td>socks</td><td>SFO</td><td>45</td></tr>
  <tr><td>2019-02-01</td><td>shoes</td><td>ORD</td><td>10</td></tr>
  <tr><td colspan="4">...</td></tr>
  <tr><td>2019-06-01</td><td>socks</td><td>NYC</td><td>100</td></tr>
  <tr><td>2019-06-05</td><td>socks</td><td>SFO</td><td>5</td></tr>
  <tr><td>2019-07-01</td><td>shoes</td><td>ORD</td><td>50</td></tr>
</tbody>
</table>


### 資料集結構描述
<a name="howitworks-dataset-schema"></a>

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

如果您的資料集包含地理位置屬性，請在結構描述中定義屬性類型為 的屬性`geolocation`。如需詳細資訊，請參閱[新增地理位置資訊](weather.md#adding-geolocation)。若要套用[天氣索引](weather.md)，您必須在目標時間序列和任何相關的時間序列資料集中包含地理位置屬性。

有些定義域有建議包含的選用維度。選用維度會列在本指南後文的每個定義域描述中。如需範例，請參閱 [RETAIL 網域](retail-domain.md)。所有選用維度都採用資料類型 `string`。

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

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

當您將訓練資料上傳至使用此結構描述的資料集時，預測會假設 `timestamp` 欄位是資料欄 1， `item_id` 欄位是資料欄 2， `store` 欄位是資料欄 3，`demand`而 欄位是*目標*欄位，是資料欄 4。

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

**注意**  
資料集中的每一欄都需要 `attributeName`和 `attributeType`對。預測會保留一些無法用作結構描述屬性名稱的名稱。如需保留名稱的清單，請參閱[保留欄位名稱](reserved-field-names.md)。

## 資料集群組
<a name="howitworks-datasetgroup"></a>

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

預測包含下列操作，可建立資料集群組並將資料集新增至其中：
+ [CreateDatasetGroup](API_CreateDatasetGroup.md)
+ [UpdateDatasetGroup](API_UpdateDatasetGroup.md)

## 解決資料收集頻率的衝突
<a name="howitworks-data-alignment"></a>

預測可以使用與您在[CreateDataset](API_CreateDataset.md)操作中指定的資料頻率不相符的資料來訓練預測器。例如，即使部分資料未在每小時頂端加上時間戳記 (02：20、02：45)，您仍可以每小時間隔在 中匯入記錄的資料。Forecast 會使用您指定的資料頻率來了解您的資料。然後，預測會在預測器訓練期間彙總資料。如需更多資訊，請參閱[不同預測頻率的資料彙總](data-aggregation.md)。