

 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\$1](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 店家第一項可用的銷售資料。最後三列包含每家商店最後記錄的銷售資料。`...` 資料列代表從第一個到最後一個項目之間記錄的所有項目銷售資料。


| `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 | 

### 資料集結構描述
<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)。

# 使用相關時間序列資料集
<a name="related-time-series-datasets"></a>

相關時間序列資料集包含目標時間序列資料集未包含的時間序列資料，可能會改善預測器的準確性。

例如，在需求預測網域中，目標時間序列資料集會包含 `timestamp`和 `item_id`維度，而互補相關的時間序列資料集也會包含下列補充功能：`item price`、 `promotion`和 `weather`。

一個相關時間序列資料集最多可包含 10 個預測維度 (與目標時間序列資料集相同)，以及最多 13 個相關的時間序列功能。

**Python 筆記本**  
如需使用相關時間序列資料集step-by-step指南，請參閱[整合相關時間序列](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Incorporating_Related_Time_Series_dataset_to_your_Predictor/Incorporating_Related_Time_Series_dataset_to_your_Predictor.ipynb)。

**Topics**
+ [歷史和前瞻相關時間序列](#related-time-series-historical-futurelooking)
+ [相關時間序列資料集驗證](#related-time-series-dataset-validation)
+ [範例：前瞻相關時間序列檔案](#related-time-series-example)
+ [範例：預測精細程度](#related-time-series-granularity)
+ [舊版預測器和相關時間序列](#related-time-series-legacy)

## 歷史和前瞻相關時間序列
<a name="related-time-series-historical-futurelooking"></a>

**注意**  
 包含預測期間內任何值的相關時間序列會被視為前瞻時間序列。

 相關時間序列有兩種形式：
+  **歷史時間序列**：預測期間內*沒有*資料點的時間序列。
+  **前瞻時間序列**：*具有*預測期間內資料點的時間序列。

歷史相關時間序列包含預測期間之前的資料點，而且不包含預測期間中的任何資料點。前瞻相關時間序列包含預測期間之前*和*之內的資料點。

![\[Time series graph showing target, forward-looking, and historical related data with forecast window.\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/short-long-rts.png)


## 相關時間序列資料集驗證
<a name="related-time-series-dataset-validation"></a>

相關時間序列資料集有下列限制：
+ 它不能包含來自目標時間序列的目標值。
+ 它必須包括 `item_id` 和 `timestamp` 維度，以及至少一個相關特徵 (例如 `price`)。
+ 相關時間序列功能資料必須是 `int` 或 `float` 資料類型。
+ 為了使用整個目標時間序列，目標時間序列資料集中的所有項目也必須包含在相關的時間序列資料集中。如果相關的時間序列僅包含目標時間序列中的項目子集，則模型建立和預測產生將僅限於該特定項目子集。

   例如，如果目標時間序列包含 1000 個項目，而相關的時間序列資料集只包含 100 個項目，則模型和預測只會根據這 100 個項目。
+ 在相關時間序列資料集中記錄資料的頻率，必須符合您要產生預測的間隔 (預測*精細程度*)。

  例如，如果您想要以每週精細程度產生預測，則在相關時間序列中記錄資料的頻率也必須是每週，即使在目標時間序列中記錄資料的頻率是每日也一樣。
+ 相關時間序列資料集中每個項目的資料都必須早於或從目標時間序列資料集中對應 `item_id` 的開頭 `timestamp` 開始。

  例如，如果 `socks` 的目標時間序列資料從 2019-01-01 開始，而 `shoes` 的目標時間序列資料從 2019-02-01 開始，則 `socks` 的相關時間序列資料必須早於或在 2019-01-01 開始，而 `shoes` 的資料必須早於或在 2019-02-01 開始。
+ 對於前瞻相關的時間序列資料集，每個項目的最後一個時間戳記必須在使用者指定的預測時段 （稱為*預測期間） *的最後一個時間戳記上。

  在以下的範例相關時間序列檔案中，襪子和鞋子的 `timestamp` 資料必須結束於 2019-07-01 或其後 (最後記錄的時間戳記)「加上」**預測期間。如果目標時間序列中的資料頻率為每日，且預測期間為 10 天，則必須在前瞻相關時間序列檔案中提供每日資料點，直到 2019-07-11。
+ 對於歷史相關時間序列資料集，每個項目的最後一個時間戳記必須符合目標時間序列中的最後一個時間戳記。

  在下面的時間序列檔案中，襪子和鞋子`timestamp`的資料都必須在 2019-07-01 （上次記錄的時間戳記） 結束。
+ 相關時間序列資料集中提供的預測維度必須等於或目標時間序列資料集中指定的維度子集。
+  相關時間序列不能缺少值。如需相關時間序列資料集中遺失值的資訊，請參閱[處理遺失值](howitworks-missing-values.md)。

## 範例：前瞻相關時間序列檔案
<a name="related-time-series-example"></a>

下表顯示正確設定的相關時間序列資料集檔案。在本範例中，假設下列情況：
+ 目標時間序列資料集記錄的最後一個資料點為 2019-07-01。
+  預測期間為 10 天。
+ 預測精細程度為每日 (`D`)。

"`…`" 資料列表示上一列與後續列之間的所有資料點。


| `timestamp` | `item_id` | `store` | `price` | 
| --- | --- | --- | --- | 
| 2019-01-01 | 襪子 | NYC | 10 | 
| 2019-01-02 | 襪子 | NYC | 10 | 
| 2019-01-03 | 襪子 | NYC | 15 | 
| ... | 
| 2019-06-01 | 襪子 | NYC | 10 | 
| ... | 
| 2019-07-01 | 襪子 | NYC | 10 | 
| ... | 
| 2019-07-11 | 襪子 | NYC | 20 | 
| 2019-01-05 | 襪子 | SFO | 45 | 
| ... | 
| 2019-06-05 | 襪子 | SFO | 10 | 
| ... | 
| 2019-07-01 | 襪子 | SFO | 10 | 
| ... | 
| 2019-07-11 | 襪子 | SFO | 30 | 
| 2019-02-01 | 鞋子 | ORD | 50 | 
| ... | 
| 2019-07-01 | 鞋子 | ORD | 75 | 
| ... | 
| 2019-07-11 | 鞋子 | ORD | 60 | 

## 範例：預測精細程度
<a name="related-time-series-granularity"></a>

下表顯示目標時間序列的相容資料記錄頻率，以及以每週精細度預測的相關時間序列。由於相關時間序列資料集中的資料無法彙總，因此預測只會接受與所選預測精細程度相同的相關時間序列資料頻率。


| 目標輸入資料頻率 | 相關時間序列頻率 | 預測精細程度 | Forecast 支援？ | 
| --- | --- | --- | --- | 
| 每日 | 每週 | 每週 | 是 | 
| 每週 | 每週 | 每週 | 是 | 
| N/A | 每週 | 每週 | 是 | 
| 每日 | 每日 | 每週 | 否 | 

## 舊版預測器和相關時間序列
<a name="related-time-series-legacy"></a>

**注意**  
若要將現有預測器升級至 AutoPredictor，請參閱 [升級至 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)

使用舊版預測器時，您可以在使用 [CNN-QR](aws-forecast-algo-cnnqr.md)、[DeepAR\$1](aws-forecast-recipe-deeparplus.md) 和 [Prophet](aws-forecast-recipe-prophet.md) 演算法訓練預測器時使用相關的時間序列資料集。[NPTS](aws-forecast-recipe-npts.md)、[ARIMA](aws-forecast-recipe-arima.md) 和 [ETS](aws-forecast-recipe-ets.md) 不接受相關的時間序列資料。

下表顯示每個 Amazon Forecast 演算法接受的相關時間序列類型。


|  | CNN-QR | DeepAR\$1 | Prophet | NPTS | ARIMA | ETS | 
| --- | --- | --- | --- | --- | --- | --- | 
|  歷史相關時間序列  | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | 
|  前瞻相關時間序列  | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-yes.png)  | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-yes.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | ![\[No\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/icon-no.png)  | 

 使用 AutoML 時，您可以同時提供歷史和前瞻相關的時間序列資料，而預測只會在適用的情況下使用這些時間序列。

 如果您提供*前瞻*相關時間序列資料，預測會將相關資料與 CNN-QR、DeepAR\$1 和 Prophet 搭配使用，而不會將相關資料與 NPTS、ARIMA 和 ETS 搭配使用。如果提供*歷史*相關時間序列資料，預測會將相關資料與 CNN-QR 搭配使用，而不會將相關資料與 DeepAR\$1、Prophet、NPTS、ARIMA 和 ETS 搭配使用。

# 使用項目中繼資料集
<a name="item-metadata-datasets"></a>

*項目中繼資料資料集*包含分類資料，可為目標時間序列資料集中的項目提供寶貴的內容。與相關的時間序列資料集不同，項目中繼資料集提供的是靜態資訊。也就是說，資料值隨著時間的推移保持不變，例如項目的顏色或品牌。項目中繼資料資料集是資料集群組的選用新增項目。只有當目標時間序列資料集中的每個項目都存在於對應的項目中繼資料集中，您才可以使用項目中繼資料。

項目中繼資料可能包括特定項目的品牌、顏色、型號、類別、原產地或其他補充功能。例如，項目中繼資料集可能會提供一些在目標時間序列數據集中找到的需求資料內容，代表 32 GB 儲存體黑色 Amazon 電子閱讀器的銷售。因為這些特性不會每天或每小時變更，所以它們屬於項目中繼資料集。

項目中繼資料對於探索和追蹤您的時間序列資料的描述性模式非常有用。如果您在資料集群組中包含項目中繼資料資料集，預測可以訓練模型，根據項目之間的相似性進行更準確的預測。例如，您可能會發現由 Amazon 製造的虛擬助理產品，比起由其他公司製造的產品，更有可能銷售一空，然後相應地規劃您的供應鏈。

項目中繼資料在冷啟動預測案例中特別有用，其中您沒有要進行預測的歷史資料，但對具有類似中繼資料屬性的項目有歷史資料。項目中繼資料可讓預測利用與冷啟動項目類似的項目來產生預測。

當您包含項目中繼資料時，預測會根據類似的時間序列建立冷啟動預測，這可以建立更準確的預測。冷啟動預測是針對項目中繼資料資料集中的項目而產生，而不是在結尾時間序列中。首先，預測會產生非coldstart 項目的預測，這些項目在結尾時間序列中具有歷史資料。接著，針對每個冷啟動項目，會使用項目中繼資料資料集找到其最近的鄰。然後，這些最近的鄰會用來建立冷啟動預測。

項目中繼資料集中的每一列最多可包含 10 個中繼資料欄位，其中一個必須是識別欄位，以比對中繼資料與目標時間序列中的項目。與所有資料集類型一樣，每個欄位的值是由資料集結構描述指定。

**Python 筆記本**  
如需使用項目中繼資料step-by-step指南，請參閱[整合項目中繼資料](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Incorporating_Item_Metadata_Dataset_to_your_Predictor/Incorporating_Item_Metadata_Dataset_to_your_Predictor.ipynb)。

**Topics**
+ [範例：項目中繼資料檔案和結構描述](#item-metadata-example)
+ [舊版預測器和項目中繼資料](#item-metadata-legacy)
+ [另請參閱](#item-metadata-see-also)

## 範例：項目中繼資料檔案和結構描述
<a name="item-metadata-example"></a>

下表顯示描述 Amazon 電子閱讀器正確設定項目中繼資料集檔案的區段。在此範例中，假設標頭列代表資料集的結構描述，而且每個列出的項目都位於對應的目標時間序列資料集中。


| `item_id` | `brand` | `model` | `color` | `waterproof` | 
| --- | --- | --- | --- | --- | 
| 1 | amazon | paperwhite | black | 是 | 
| 2 | amazon | paperwhite | blue | 是 | 
| 3 | amazon | base\$1model | black | 編號 | 
| 4 | amazon | base\$1model | white | 編號 | 
| ... | 

以下是以 CSV 格式表示的相同資訊。

```
1,amazon,paperwhite,black,yes
2,amazon,paperwhite,blue,yes
3,amazon,base_model,black,no
4,amazon,base_model,white,no
...
```

以下是此範例資料集的結構描述。

```
{
     "attributes": [
        {
           "AttributeName": "item_id",
           "AttributeType": "string"
        },
        {
           "AttributeName": "brand",
           "AttributeType": "string"
        },
        {
           "AttributeName": "model",
           "AttributeType": "string"
        },
        {
           "AttributeName": "color",
           "AttributeType": "string"
        },
        {
           "AttributeName": "waterproof",
           "AttributeType": "string"
        }
    ]
}
```

## 舊版預測器和項目中繼資料
<a name="item-metadata-legacy"></a>

**注意**  
若要將現有預測器升級至 AutoPredictor，請參閱 [升級至 AutoPredictor](howitworks-predictor.md#upgrading-autopredictor)

使用舊版預測器時，您可以在使用 [CNN-QR](aws-forecast-algo-cnnqr.md) 或 [DeepAR\$1](aws-forecast-recipe-deeparplus.md) 演算法訓練預測器時使用項目中繼資料。使用 AutoML 時，您可以提供項目中繼資料，且預測只會在適用的情況下使用這些時間序列

## 另請參閱
<a name="item-metadata-see-also"></a>

如需使用項目中繼資料資料集的深入演練，請參閱《[Amazon Forecast Samples GitHub Repository](https://github.com/aws-samples/amazon-forecast-samples)》中的[將項目中繼資料資料集併入您的預測器](https://github.com/aws-samples/amazon-forecast-samples/blob/master/notebooks/advanced/Incorporating_Item_Metadata_Dataset_to_your_Predictor/Incorporating_Item_Metadata_Dataset_to_your_Predictor.ipynb)。

# 預先定義的資料集網域和資料集類型
<a name="howitworks-domains-ds-types"></a>

若要訓練預測器，您可以建立一或多個資料集、將其新增到資料集群組，並提供資料集群組用於訓練。

對於您建立的每個資料集，您會建立資料集網域和資料集類型的關聯。*資料集網域*會指定常用案例的預先定義資料集結構描述，而且不會影響模型演算法或超參數。

Amazon Forecast 支援以下資料集網域：
+ [RETAIL 網域](retail-domain.md) – 用於零售需求預測
+ [INVENTORY\$1PLANNING 網域](inv-planning-domain.md) – 用於供應鏈和庫存規劃
+ [EC2 CAPACITY 網域](ec2-capacity-domain.md) – 用於預測 Amazon Elastic Compute Cloud (Amazon EC2) 容量 
+ [WORK\$1FORCE 網域](workforce-domain.md) – 用於人力規劃 
+ [WEB\$1TRAFFIC 網域](webtraffic-domain.md) – 用於估計未來的 Web 流量 
+ [METRICS 網域](metrics-domain.md) – 用於預測指標，例如收入和現金流
+ [CUSTOM 網域](custom-domain.md) – 用於所有其他類型的時間序列預測

每個網域可以有一到三個*資料集類型*。您為網域建立的資料集類型，取決於您擁有的資料類型和您想包含在訓練中的內容。

每個網域都需要目標時間序列資料集，並選擇性地支援相關的時間序列資料集類型和項目中繼資料集類型。

資料集類型為：
+ 目標時間序列 – 唯一必要的資料集類型。此類型定義您要為其產生預測的*目標*欄位。例如，如果要預測一組產品的銷售額，則必須為您要預測的每個產品建立歷史時間序列資料的資料集。同樣地，您可以為您可能想要預測的指標建立目標時間序列資料集，例如營收、現金流和銷售額。
+ 相關時間序列 – 與目標時間序列資料相關的時間序列資料。例如，價格與產品銷售資料相關，所以您可以提供它做為相關時間序列。
+ 項目中繼資料 – 適用於目標時間序列資料的中繼資料。例如，如果您預測特定產品的銷售額，產品屬性 - 例如品牌、顏色和類型 - 將是項目中繼資料的一部分。預測 EC2 執行個體的 EC2 容量時，中繼資料可能包括執行個體類型的 CPU 和記憶體。

對於每個資料集類型，您的輸入資料必須包含特定的必要欄位。您也可以加入 Amazon Forecast 建議您包含的選用欄位。

以下範例說明如何選擇資料集網域和對應的資料集類型。

**Example 範例 1：RETAIL 網域中的資料集類型**  
如果您是對預測項目需求感興趣的零售商，您可以在 RETAIL 網域中建立以下資料集：  
+ 目標時間系列是每個項目 (零售商銷售的每個產品) 的歷史時間序列需求 (銷售額) 資料的必要資料集。在 RETAIL 網域中，這個資料集類型要求資料集包括 `item_id`、`timestamp` 和 `demand` 欄位。`demand` 欄位是預測目標，通常是零售商在特定的一週或一天內銷售的項目數量。
+ 或者，相關時間序列類型的資料集。在 RETAIL 網域中，這個類型可以包含選用 (但建議) 的時間序列資訊，例如 `price`、`inventory_onhand` 和 `webpage_hits`。
+ 或者，項目中繼資料類型的資料集。在 RETAIL 網域中，Amazon Forecast 建議提供與您在目標時間序列中所提供項目相關的中繼資料資訊，例如 `brand`、`color`、`category` 和 `genre`。

**Example 範例 2：METRICS 網域中的資料集類型**  
如果您想要預測組織的關鍵指標，例如營收、銷售和現金流，您可以向 Amazon Forecast 提供下列資料集：  
+ 目標時間序列資料集，提供您想要預測之指標的歷史時間序列資料。如果您想要預測組織中所有業務單位的收入，您可以使用 `metric`、`business unit` 和 `metric_value` 欄位建立 `target time series` 資料集。
+ 如果您的每個指標有任何非必要的中繼資料，例如 `category` 或 `location`，您可以提供相關時間序列和項目中繼資料類型的資料集。
您至少必須提供目標時間序列資料集，供預測產生目標指標的預測。

**Example 範例 3：CUSTOM 網域中的資料集類型**  
您預測應用程式的訓練資料有可能不符合任何 Amazon Forecast 網域。如果是這種情況，請選擇 CUSTOM 網域。您必須提供目標時間序列資料集，但您可以新增自己的自訂欄位。  
[開始使用](getting-started.md)練習預測客戶的用電量。用電量訓練資料不符合任何資料集網域，因此我們使用 CUSTOM 網域。在練習中，我們只使用一個資料集類型：目標時間序列類型。我們將資料欄位對應到資料集類型所需的最少欄位。

# RETAIL 網域
<a name="retail-domain"></a>

RETAIL 網域支援以下資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-retail-domain)
+ [相關時間序列資料集類型](#related-time-series-type-retail-domain)
+ [項目中繼資料集類型](#item-metadata-type-retail-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-retail-domain"></a>

目標時間序列是零售組織所銷售每個項目或產品的歷史時間序列資料。下列是必要欄位：
+ `item_id ` （字串） – 您要預測需求之項目或產品的唯一識別符。
+ `timestamp` (時間戳記)
+ `demand` （浮點數） – 時間戳記時該項目的銷售量。這也是 Amazon Forecast 產生預測的*目標*欄位。

下列是選用維度，可用來變更預測精細程度：
+ `location` （字串） – 販售項目的存放區位置。這應該只在您有多個商店/地點時使用。

最理想的狀況，是僅應包含這些必要欄位和選用維度。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-retail-domain"></a>

您可以提供 Amazon Forecast 相關時間序列資料集，例如價格或項目在特定日期收到的網頁點擊次數。您提供的資訊越多，預測就越準確。下列是必要欄位：
+ `item_id ` (string)
+ `timestamp ` (時間戳記)

下列是選用欄位，可能有助於改善預測結果：
+ `price` （浮點數） – 時間戳記時項目的價格。
+ `promotion_applied` （整數；1=true，0=false) – 指定該項目在時間戳記時是否有行銷促銷的旗標。

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

## 項目中繼資料集類型
<a name="item-metadata-type-retail-domain"></a>

此資料集提供 Amazon Forecast 有關要預測其需求之項目的中繼資料 (屬性) 相關資訊。下列是必要欄位：
+ `item_id ` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `category` (string)
+ `brand` (string)
+ `color` (string)
+ `genre` (string)

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# CUSTOM 網域
<a name="custom-domain"></a>

CUSTOM 網域支援以下資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-custom-domain)
+ [相關時間序列資料集類型](#related-time-series-type-custom-domain)
+ [項目中繼資料集類型](#item-metadata-type-custom-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-custom-domain"></a>

下列是必要欄位：
+ `item_id ` (string)
+ `timestamp` (時間戳記)
+ `target_value` （浮點整數） – 這是 Amazon Forecast 產生預測`target`的欄位。

最理想的狀況，是僅應包含這些必要欄位。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-custom-domain"></a>

下列是必要欄位：
+ `item_id` (string)
+ `timestamp` (時間戳記)

除了必要欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

## 項目中繼資料集類型
<a name="item-metadata-type-custom-domain"></a>

下列欄位是必要的：
+ `item_id` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `category` (string)

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# INVENTORY\$1PLANNING 網域
<a name="inv-planning-domain"></a>

將 INVENTORY\$1PLANNING 網域用於預測原料需求並確定要庫存之特定項目的庫存量。它支援下列資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-inv-planning-domain)
+ [相關時間序列資料集類型](#related-time-series-type-related-time-series-domain)
+ [項目中繼資料集類型](#item-metadata-type-related-time-series-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-inv-planning-domain"></a>

下列是必要欄位：
+ `item_id` (string)
+ `timestamp` (時間戳記)
+ `demand` （浮點數） – 這是 Amazon Forecast 產生預測`target`的欄位。

下列是選用維度，可用來變更預測精細程度：
+ `location` （字串） – 存放項目的分發中心位置。這應該只在您有多個商店/地點時使用。

最理想的狀況，是僅應包含這些必要欄位和選用維度。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-related-time-series-domain"></a>

下列是必要欄位：
+ `item_id` (string)
+ `timestamp` (時間戳記)

下列是選用欄位，可能有助於改善預測結果：
+ `price` （浮點數） – 項目的價格 

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

## 項目中繼資料集類型
<a name="item-metadata-type-related-time-series-domain"></a>

下列是必要欄位：
+ `item_id` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `category` （字串） – 項目的類別。
+ `brand` （字串） – 項目的品牌。
+ `lead_time` （字串） – 製造項目的前置時間，以天為單位。
+ `order_cycle` （字串） – 訂單週期會在工作開始時開始，並在項目準備好交付時結束。
+ `safety_stock` （字串） – 該項目的庫存量下限。

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# EC2 CAPACITY 網域
<a name="ec2-capacity-domain"></a>

使用 EC2 CAPACITY 網域預測 Amazon EC2 容量。它支援下列資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

## 目標時間序列資料集類型
<a name="target-time-series-type-ec2-capacity-domain"></a>

下列是必要欄位：
+ `instance_type` （字串） – 執行個體的類型 （例如 c5.xlarge)。
+ `timestamp` (時間戳記)
+ `number_of_instances` （整數） – 在時間戳記時耗用的該特定執行個體類型的執行個體數量。這是 Amazon Forecast 產生預測的 `target` 欄位。

下列是選用維度，可用來變更預測精細程度：
+ `location` （字串） – 您可以提供 AWS 區域，例如 us-west-2 或 us-east-1。只您建立多區域模型時才應該使用此維度。

最理想的狀況，是僅應包含這些必要和建議的選用欄位。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-ec2-capacity-domain"></a>

下列是必要欄位：
+ `instance_type` (string)
+ `timestamp` (時間戳記)

除了必要欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# WORK\$1FORCE 網域
<a name="workforce-domain"></a>

使用 WORK\$1FORCE 網域來預測人力需求。它支援下列資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-workforce-domain)
+ [相關時間序列資料集類型](#related-time-series-type-workforce-domain)
+ [項目中繼資料集類型](#item-metadata-type-workforce-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-workforce-domain"></a>

下列是必要欄位：
+ `workforce_type` （字串） – 正在預測的人力人力類型。例如，電話語音中心需求或履行中心勞動力需求。
+ `timestamp` (時間戳記)
+ `workforce_demand` （浮點整數） – 這是 Amazon Forecast 產生預測`target`的欄位。

下列是選用維度，可用來變更預測精細程度：
+ `location` （字串） – 尋求人力資源的位置。如果您有多個商店/地點，則應該使用此維度。

最理想的狀況，是僅應包含這些必要欄位和選用維度。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-workforce-domain"></a>

下列是必要欄位：
+ `workforce_type` (string)
+ `timestamp` (時間戳記)

除了必要欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

## 項目中繼資料集類型
<a name="item-metadata-type-workforce-domain"></a>

下列欄位是必要的：
+ `workforce_type` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `wages` （浮點數） – 該特定人力資源類型的平均薪資。
+ `shift_length` （字串） – 輪班的長度。
+ `location` （字串） – 人力的位置。

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# WEB\$1TRAFFIC 網域
<a name="webtraffic-domain"></a>

使用 WEB\$1TRAFFIC 網域來預測一個或一組 Web 屬性的 Web 流量。它支援下列資料集類型。相關主題說明資料集類型支援的必要和選用欄位。如需如何將這些欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-webtraffic-domain)
+ [相關時間序列資料集類型](#related-time-series-type-webtraffic-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-webtraffic-domain"></a>

下列是必要欄位：
+ `item_id` （字串） – 要預測的每個 Web 屬性的唯一識別符。
+ `timestamp` (時間戳記)
+ `value` （浮點數） – 這是 Amazon Forecast 產生預測`target`的欄位。

最理想的狀況，是僅應包含這些必要欄位。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-webtraffic-domain"></a>

下列是必要欄位：
+ `item_id` (string)
+ `timestamp` (時間戳記)

除了必要欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

### 項目中繼資料集類型
<a name="idem-metadata-type-webtraffic-domain"></a>

下列欄位是必要的：
+ `item_id` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `category` (string)

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# METRICS 網域
<a name="metrics-domain"></a>

使用 METRICS 網域來預測指標，例如收入、銷售額和現金流。它支援下列資料集類型。對於每個資料集類型，我們列出必要和選用的欄位。如需如何將欄位對應到訓練資料中欄位的詳細資訊，請參閱[資料集網域和資料集類型](howitworks-datasets-groups.md#howitworks-dataset-domainstypes)。

**Topics**
+ [目標時間序列資料集類型](#target-time-series-type-metrics-domain)
+ [相關時間序列資料集類型](#related-time-series-type-metrics-domain)
+ [項目中繼資料集類型](#item-metadata-type-metrics-domain)

## 目標時間序列資料集類型
<a name="target-time-series-type-metrics-domain"></a>

下列是必要欄位：
+ `metric_name` (string)
+ `timestamp` (時間戳記)
+ `metric_value` （浮點整數） – 這是 Amazon Forecast 產生預測`target`的欄位 （例如，特定日期產生的收入量）。

最理想的狀況，是僅應包含這些必要欄位。其他額外的時間序列資訊應該包含在相關時間序列資料集中。

## 相關時間序列資料集類型
<a name="related-time-series-type-metrics-domain"></a>

下列是必要欄位：
+ `metric_name` (string)
+ `timestamp` (時間戳記)

除了必要欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

## 項目中繼資料集類型
<a name="item-metadata-type-metrics-domain"></a>

下列欄位是必要的：
+ `metric_name` (string)

下列是選用欄位，可能有助於改善預測結果：
+ `category` (string)

除了必要欄位和建議選用欄位，您的訓練資料也可以包含其他欄位。若要在資料集中包含其他欄位，請在建立資料集時以結構描述提供欄位。

# 更新資料
<a name="updating-data"></a>

當您收集新資料時，您會想要將該資料匯入預測。若要這樣做，您有兩個選項：取代和增量更新。替換資料集匯入任務會使用新匯入的資料覆寫所有現有資料。增量更新會將新匯入的資料附加至資料集。

匯入新資料之後，您可以使用現有的預測器來產生該資料的預測。

**Topics**
+ [匯入模式](#idsi)
+ [更新現有的資料集](#idsi-console)
+ [更新預測](#update-data-new-forecasts)

## 匯入模式
<a name="idsi"></a>

若要設定 Amazon Forecast 如何將新資料新增至現有資料集，您可以指定資料集匯入任務的匯入模式。預設匯入模式為 `FULL`。您只能使用 Amazon Forecast API 設定匯入模式。
+ 若要覆寫資料集中的所有現有資料，請在 [CreateDatasetImportJob](API_CreateDatasetImportJob.md) API 操作`FULL`中指定 。
+ 若要將記錄附加至資料集中的現有資料，請在 [CreateDatasetImportJob](API_CreateDatasetImportJob.md) API 操作`INCREMENTAL`中指定 。如果現有記錄和匯入的記錄具有相同的時間序列 ID （項目 ID、維度和時間戳記），則會以新匯入的記錄取代現有記錄。Amazon Forecast 一律使用具有最新時間戳記的記錄。

如果您尚未匯入資料集，則增量選項無法使用。預設匯入模式是完全取代。

### 增量匯入模式準則
<a name="idsi-incremental"></a>

當您執行增量資料集匯入時，您無法變更時間戳記格式、資料格式或地理位置資料。若要變更任何這些項目，您需要執行完整的資料集匯入。

## 更新現有的資料集
<a name="idsi-console"></a>

**重要**  
根據預設，資料集匯入任務會取代您匯入資料集中的任何現有資料。您可以透過指定資料集匯入任務的 來變更此項目[匯入模式](#idsi)。

若要更新資料集，請為資料集建立資料集匯入任務，並指定匯入模式。

------
#### [ CLI ]

若要更新資料集，請使用 `create-dataset-import-job`命令。對於 `import-mode`，請指定 `FULL`，以取代現有資料或將其`INCREMENTAL`新增至其中。如需詳細資訊，請參閱[匯入模式](#idsi)。

下列程式碼示範如何建立資料集匯入任務，以逐步將新資料匯入資料集。

```
aws forecast create-dataset-import-job \
                        --dataset-import-job-name dataset import job name \
                        --dataset-arn dataset arn \
                        --data-source "S3Config":{"KMSKeyArn":"string", "Path":"string", "RoleArn":"string"} \
                        --import-mode INCREMENTAL
```

------
#### [ Python ]

若要更新資料集，請使用 `create_dataset_import_job`方法。對於 `import-mode`，請指定 `FULL`，以取代現有資料或將其`INCREMENTAL`新增至其中。如需詳細資訊，請參閱[匯入模式](#idsi)。

```
import boto3

forecast = boto3.client('forecast')

response = forecast.create_dataset_import_job(
    datasetImportJobName = 'YourImportJob',
    datasetArn = 'dataset_arn',
    dataSource = {"S3Config":{"KMSKeyArn":"string", "Path":"string", "RoleArn":"string"}},
    importMode = 'INCREMENTAL'
)
```

------

## 更新預測
<a name="update-data-new-forecasts"></a>

當您收集新資料時，建議您使用它來產生新的預測。當您匯入更新的資料集時，預測不會自動重新訓練預測器，但您可以手動重新訓練預測器，以使用更新的資料產生新的預測。例如，如果您收集每日銷售資料，並想要在預測中包含新的資料點，您可以匯入更新的資料，並使用它來產生預測，而無需訓練新的預測器。若要讓新匯入的資料影響您的預測，您必須重新訓練預測器。

**若要從新資料產生預測：**

1. 將新資料上傳至 Amazon S3 儲存貯體。您的新資料應該只包含自上次匯入資料集後新增的資料。

1. 使用新資料建立**增量**資料集匯入任務。新資料會附加至現有資料，而預測會從更新的資料產生。如果您的新資料檔案同時包含先前匯入的資料和新資料，請建立**完整**資料集匯入任務。

1. 使用現有的預測器建立新的預測。

1. 照常擷取預測。

# 處理遺失值
<a name="howitworks-missing-values"></a>

時間序列預測資料中有個常見問題，就是會出現遺失值。您的資料可能由於多種原因而包含遺失值，包括測量失敗、格式設定問題、人為錯誤或缺少要記錄的資訊。例如，如果您要預測零售商店的產品需求，而某個商品已售完或無法供應，則在該商品無庫存期間，不會有要記錄的銷售資料。如果遺失值夠普遍，則會顯著影響模型的準確性。

Amazon Forecast 提供多種填入方法，可處理目標時間序列和相關時間序列資料集中的遺失值。填入是將標準化值新增至資料集中的遺失項目的程序。

Forecast 支援下列填入方法：
+ **中間填入** – 填入資料集的項目開始和項目結束日期之間的任何遺失值。
+ **回填** – 填入資料集上次記錄的資料點和全域結束日期之間的任何遺失值。
+ **未來填入 （僅限相關時間序列）** – 填入全域結束日期和預測期間結束之間的任何遺失值。

下圖提供不同填入方法的視覺化呈現。

![\[Timeline showing three items with varying durations and fill methods between global start and end dates.\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/Filling_types.PNG)


## 選擇填入邏輯
<a name="choosing-missing-values"></a>

選擇填入邏輯時，您應考慮模型將會如何解讀邏輯。例如，在零售案例中，記錄供應商品的 0 銷售量會不同於記錄無法供應之商品的 0 銷售量，因為後者並不表示客戶對該商品缺乏興趣。因此，`0`填入目標時間序列可能會導致預測器在預測中偏差不足，而`NaN`填入可能會忽略實際銷售的 0 個可用項目，並導致預測器偏差過大。

下列時間序列圖表說明選擇錯誤的填入值會如何大幅影響模型的準確度。圖表 A 和 B 繪製某個部分缺貨之商品的需求，黑線代表實際銷售資料。A1 中的遺失值填入了 `0`，導致 A2 的預測中發生相對的低估偏差 (以虛線表示)。同樣地，B1 中的遺失值填入了 `NaN`，這在 B2 中導致了更準確的預測。

![\[Time-series graphs comparing item demand predictions with different filling values for missing data.\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/images/filling_values.PNG)


如需支援的填入邏輯清單，請參閱下一節。

## 目標時間序列和相關時間序列填入邏輯
<a name="filling-restrictions"></a>

您可以同時在目標時間序列和相關時間序列資料集上執行填入。每個資料集類型都有不同的填入指導方針和限制。


**填入指導方針**  

| 資料集類型 | 預設填入？ | 支援的填入方法 | 預設的填入邏輯 | 可接受的填入邏輯 | 
| --- | --- | --- | --- | --- | 
| 目標時間序列 | 是 | 中間和往回填入 | 0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/howitworks-missing-values.html)  | 
| 相關時間序列 | 否 | 中間、往回和未來填入 | 無預設值 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/forecast/latest/dg/howitworks-missing-values.html)  | 

**重要**  
對於目標和相關的時間序列資料集，、`min`、 `mean` `median`和 `max`是根據遺失值之前 64 個最近資料項目的滾動時段計算的。

## 缺少值語法
<a name="filling-syntax"></a>

若要執行缺少值填入，請指定當您呼叫 [CreatePredictor](API_CreatePredictor.md) 操作時要實作的填入類型。可在 [FeaturizationMethod](API_FeaturizationMethod.md) 物件中指定填充邏輯。

下列摘錄針對目標時間序列屬性和相關時間序列屬性 (分別為 `target_value` 和 `price`)，示範了具有正確格式設定的 `FeaturizationMethod` 物件。

 若要將填充方法設定為特定值，請將填充參數設定為 ，`value`並在對應的`_value`參數中定義值。如下所示，相關時間序列的回填會設定為值 2，如下所示： `"backfill": "value"`和 `"backfill_value":"2"`。

```
[
    {
        "AttributeName": "target_value",
        "FeaturizationPipeline": [
            {
                "FeaturizationMethodName": "filling",
                "FeaturizationMethodParameters": {
                    "aggregation": "sum",
                    "middlefill": "zero",
                    "backfill": "zero"
                }
            }
        ]
    },
    {
        "AttributeName": "price",
        "FeaturizationPipeline": [
            {
                "FeaturizationMethodName": "filling",
                "FeaturizationMethodParameters": {
                    "middlefill": "median",
                    "backfill": "value",
                    "backfill_value": "2",
                    "futurefill": "max"               
                    }
            }
        ]
    }
]
```

# 預測的資料集準則
<a name="dataset-import-guidelines-troubleshooting"></a>

如果 Amazon Forecast 無法匯入資料集，或資料集無法如預期運作，請參閱下列準則。

**時間戳記格式**  
對於年 (`Y`)、月 (`M`)、週 (`W`) 和日 (`D`) 集合頻率，預測支援`yyyy-MM-dd`時間戳記格式 （例如 `2019-08-21`) 和選擇性`HH:mm:ss`格式 （例如 `2019-08-21 15:00:00`)。  
對於小時 (`H`) 和分鐘 (`M`) 頻率，預測僅支援 `yyyy-MM-dd HH:mm:ss` 格式 （例如 `2019-08-21 15:00:00`)。  
準則：將資料集收集頻率的時間戳記格式變更為支援的格式。

**Amazon S3 檔案或儲存貯體 **  
匯入資料集時，您可以在包含資料的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中指定 CSV 或 Parquet 檔案的路徑，或指定包含資料的 S3 儲存貯體名稱。如果您指定 CSV 或 Parquet 檔案，預測只會匯入該檔案。如果您指定 S3 儲存貯體，預測會匯入儲存貯體中的所有 CSV 或 Parquet 檔案，最多 10，000 個檔案。如果您透過指定儲存貯體名稱匯入多個檔案，則所有 CSV 或 Parquet 檔案都必須符合指定的結構描述。  
指導方針：使用以下語法指定特定檔案或 S3 儲存貯體：  
`s3://bucket-name/example-object.csv`  
`s3://bucket-name/example-object.parquet`  
`s3://bucket-name/prefix/`  
`s3://bucket-name`  
Parquet 檔案可以有副檔名 .parquet、.parq、.pqt，或完全沒有副檔名。

**完整的資料集更新**  
您的第一個資料集匯入一律是完整匯入，後續匯入可以是完整或增量更新。您必須使用預測 API 來指定匯入模式。  
透過完整更新，所有現有的資料都會取代為新匯入的資料。由於完整的資料集匯入任務不會彙總，因此您最近的資料集匯入是在訓練預測器或產生預測時使用的資料集匯入。  
指導方針：建立增量資料集更新，將新資料附加至現有資料。否則，請確保您最近的資料集匯入包含您想要建模的所有資料，而不只是自上次匯入後所收集的新資料。

**增量資料集更新**  
時間戳記、資料格式、地理位置等欄位會從目前作用中的資料集讀取。您不需要在增量資料集匯入中包含此資訊。如果包含這些值，它們必須符合最初提供的值。  
準則：執行完整的資料集匯入，以變更任何這些值。

**屬性順序**  
結構描述定義中指定的屬性順序必須符合您匯入之 CSV 或 Parquet 檔案中的資料欄順序。例如，如果您`timestamp`將 定義為第一個屬性，則 `timestamp` 也必須是輸入檔案中的第一欄。  
準則：確認輸入檔案中的資料欄與您建立的結構描述屬性順序相同。

**天氣索引**  
若要套用天氣索引，您必須在目標時間序列和任何相關的時間序列資料集中包含[地理位置屬性](weather.md#adding-geolocation)。您也需要為目標[時間](weather.md#specifying-timezones)序列時間戳記指定時區。  
準則：確保您的資料集包含地理位置屬性，且您的時間戳記具有指派的時區。如需詳細資訊，請參閱天氣索引[條件和限制。](weather.md#weather-conditions-restrictions)

**資料集標頭**  
輸入 CSV 中的資料集標頭可能會導致驗證錯誤。建議您省略 CSV 檔案的標頭。  
準則：刪除資料集標頭，然後再次嘗試匯入。  
Parquet 檔案需要資料集標頭。

**資料集狀態**  
使用 [CreateDatasetImportJob](API_CreateDatasetImportJob.md)操作匯入訓練資料之前，資料集`Status`的 必須是 `ACTIVE`。  
準則：使用 [DescribeDataset](API_DescribeDataset.md) 操作取得資料集的狀態。如果無法建立或更新資料集，請檢查資料集檔案的格式，再次嘗試建立資料集。

**預設檔案格式**  
預設檔案格式為 CSV。

**檔案格式和分隔符號**  
預測僅支援逗號分隔值 (CSV) 檔案格式和 Parquet 格式。您無法使用 Tab 字元、空格、冒號或任何其他字元來分隔值。  
準則：將資料集轉換為 CSV 格式 （僅使用逗號做為分隔符號） 或 Parquet 格式，然後再次嘗試匯入檔案。

**檔案名稱**  
檔案名稱至少必須包含一個字母字元。無法匯入名稱僅含數字的檔案。  
準則：重新命名您的輸入資料檔案，以包含至少一個字母字元，然後再次嘗試匯入檔案。

**分割 Parquet 資料**  
預測不會讀取分割的 Parquet 檔案。

**假設分析資料集需求**  
如果分析需要 CSV 資料集，則為 。[CreateWhatIfAnalysis](API_CreateWhatIfAnalysis.md) 動作的 TimeSeriesSelector 操作和 的 TimeSeriesReplacementDataSource 操作[CreateWhatIfForecast](API_CreateWhatIfForecast.md)不接受 Parquet 檔案。