

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

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

# 處理遺失值
<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"               
                    }
            }
        ]
    }
]
```