

# 附錄 A：常見問答集
<a name="appendix-a-faqs"></a>

 **問：如何開始使用 Amazon Forecast？** 

1.  首先，您需要一個 AWS 帳戶。 

1.  接著，在 [AWS Management Console](https://aws.amazon.com/console/) 中開啟 Forecast 服務，建立資料集群組，然後將 `.csv` 檔案匯入至目標時間序列資料集 (必要)。入門所需的最低資料是您要預測之數量的歷史資料，例如，每個家庭每個時間戳記的用電量。

1.  最後，藉由執行 [CreatePredictor](https://docs.aws.amazon.com/forecast/latest/dg/API_CreatePredictor.html) 建立一個模型，並執行 [CreateForecast](https://docs.aws.amazon.com/forecast/latest/dg/API_CreateForecast.html) 以產生結果。如需詳細資訊，請參閱[入門](https://docs.aws.amazon.com/forecast/latest/dg/getting-started.html)文件頁面。 

 另請參閱 [GitHub 簡介和最佳實務指南](https://github.com/aws-samples/amazon-forecast-samples/blob/master/ForecastCheatSheet.md)。 

 **問：Amazon Forecast 適合我嗎？** 

 並非所有機器學習問題都是預測問題。首先應該自問：「我的業務問題是否在陳述中包含時間序列？」 例如，您是否只需要未來特定時間和日期的特定值？ 預測不適用於一般、靜態 (特定日期/時間無關緊要) 的問題，例如詐騙偵測或向使用者推薦電影片名。靜態問題有比這快得多的解決方案。 

 除了有時間序列資料以外，資料本身還應該是「密集」的，且具有較長的歷史。下表總結了這一點： 

 *表 2 — 條件和 Amazon Forecast 演算法類別*


|  條件  |  Amazon Forecast 演算法類別  | 
| --- | --- | 
|  含有多達 500 萬個時間序列的大型資料集，具有類似的基礎模式 \+ 季節性效果 \+ 相關資料。每個時間序列均應有很長的歷史 (理想情況下，如果嘗試擷取年度事件，則應超過兩年)，且每個時間序列應有超過 300 個資料點 (理想情況下至少要有 1K)。 |  Amazon Forecast 專屬的深度學習 DeepAR\+、CNN-QR  | 
|  含有 1-100 個時間序列的小型資料集，其中大多數的時間序列具有超過 300 個資料點 \+ 季節性效果 \+ 相關資料。 |  Prophet  | 
|  含有 1-10 個時間序列的小型資料集，其中大多數的時間序列具有超過 300 個資料點 \+ 季節性效果。 |  ETS、ARIMA  | 
|  含有 1-10 個時間序列的間歇 (包含許多 0 的稀疏) 資料集，其中大多數時間序列具有超過 300 個資料點。 |  Amazon Forecast 專屬的 NPTS  | 
|  含有 1-10 個時間序列的小型資料集 (一般或稀疏)，其中大多數的時間序列具有超過 300 個資料點。 |  資料對 Amazon Forecast 而言太小。請改為在 Excel 或傳統的統計模型 ARIMA 和 Prophet 中嘗試使用 ETS。 | 

 最佳實務是在第一次訓練資料時，在您的預測器中使用 AutoML 模式進行訓練。AutoML 會自動執行所有演算法 (DL 演算法會在開啟 HPO 的情況下執行)，以了解何種演算法最適合您的資料。 

 **問：如何認定資料遺漏？ 在何種程度下將無法產生合理的預測？** 

 這有可能是指資料的記錄出現問題，或資料的彙總層級過低或過高。通則是 Forecast 長度不可超過訓練資料的 1/3。 

 除了遺漏資料的數量外，另一項考量因素是遺漏資料的原因。您可以將所有 0 轉換為空值，讓 Amazon Forecast 代為執行自動推算遺漏值的繁重工作。Amazon Forecast 會自動偵測遺漏值是因為新產品的導入 (冷啟動) 還是生命週期結束的產品所導致的。您可以使用數個遺漏值邏輯，包括值、中位數、最小值、最大值、零、平均值和 NaN (僅限目標時間序列)。請參閱[空值填入語法的文件](https://docs.aws.amazon.com/forecast/latest/dg/howitworks-missing-values.html)。 
+  "frontfill" - (僅限 TTS) 是指新的或冷啟動的品項，以及在品項開始有任何歷史記錄之前要如何處理空值 
+  "middlefill" — 是指時間序列值中間的空值 
+  "backfill" — 是指生命週期結束的品項，以及在品項停止銷售後要如何處理空值 
+  "futurefill" — (僅限 RTS) 是指在訓練資料結束後發生的空值 

 **問：我的輸入歷史資料沒有負值，但我在需求預測中看到負值。 為什麼會這樣？ 如何避免這種情況？** 

 對於 NPTS (以非負資料進行訓練) 和 DeepAR (使用負二項式相似度函數) 以外的所有模型，不保證會產生正數。解決方案是變更為前述模型之一，或將預測值截斷為非負值。 

 **問：分位數的準確性指標為何有所不同？ 既然模型相同，誤差不也應相同嗎？** 

 有關加權如何依存於分位數的更多說明，請參閱[加權分位數損失 (wQL)](https://docs.aws.amazon.com/forecast/latest/dg/metrics.html#metrics-wQL)。 

 假設你對以下三個不同的分位數進行預測：p10、p50、p90。這三個預測本身就是隨機變數。準確性是在每個分位數層級的實際值與預測之間個別計算的。您可能會看到如下的 “wQL” (加權分位數損失) 表格。wQL 值彼此之間沒有確定性關係。(記住，損失就是誤差，所以是無序的；然而，分位數預測是有序的)。因此，舉例來說，p90 wQL 不一定會大於 p50 wQL。  

*表 3 — 預測分位數範例* 


|   |  A  |  B  |  C  | 
| --- | --- | --- | --- | 
|  1  |  P10 wQL  |  P50 wQL  |  P90 wQL  | 
|  2  |  0.18647  |  0.50879  |  0.30428  | 

 **問：如何改善預測準確性？** 

 預測準確性取決於是否有適當數量和質量的適當資料可供使用。如果準確性不如預期，了解問題有多少可預測性 (或資料的隨機/雜訊/靜止程度) 可能會有幫助。其他需要考量的因素包括評估不同的模型、超參數設定，以及使用相關的時間序列和項目中繼資料資料集來併入其他特徵。如需具體建議，[請參閱 GitHub 上的這份最佳實務文件](https://github.com/aws-samples/amazon-forecast-samples/blob/master/ForecastCheatSheet.md#iteratebp)。 

 **問：有個演算法非常適合運用在我的使用案例，但 Amazon Forecast 中並未提供。我該怎麼做？** 

 Amazon Forecast 團隊將很樂意為您提供此使用案例的協助。請將電子郵件寄到 amazonforecast-poc@amazon.com，與 Amazon Forecast 的服務團隊聯繫。