附錄 A:常見問答集
問:如何開始使用 Amazon Forecast?
-
首先,您需要一個 AWS 帳戶。
-
接著,在 AWS Management Console
中開啟 Forecast 服務,建立資料集群組,然後將 .csv檔案匯入至目標時間序列資料集 (必要)。入門所需的最低資料是您要預測之數量的歷史資料,例如,每個家庭每個時間戳記的用電量。 -
最後,藉由執行 CreatePredictor 建立一個模型,並執行 CreateForecast 以產生結果。如需詳細資訊,請參閱入門文件頁面。
另請參閱 GitHub 簡介和最佳實務指南
問: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 (僅限目標時間序列)。請參閱空值填入語法的文件。
-
"frontfill" - (僅限 TTS) 是指新的或冷啟動的品項,以及在品項開始有任何歷史記錄之前要如何處理空值
-
"middlefill" — 是指時間序列值中間的空值
-
"backfill" — 是指生命週期結束的品項,以及在品項停止銷售後要如何處理空值
-
"futurefill" — (僅限 RTS) 是指在訓練資料結束後發生的空值
問:我的輸入歷史資料沒有負值,但我在需求預測中看到負值。 為什麼會這樣? 如何避免這種情況?
對於 NPTS (以非負資料進行訓練) 和 DeepAR (使用負二項式相似度函數) 以外的所有模型,不保證會產生正數。解決方案是變更為前述模型之一,或將預測值截斷為非負值。
問:分位數的準確性指標為何有所不同? 既然模型相同,誤差不也應相同嗎?
有關加權如何依存於分位數的更多說明,請參閱加權分位數損失 (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 上的這份最佳實務文件
問:有個演算法非常適合運用在我的使用案例,但 Amazon Forecast 中並未提供。我該怎麼做?
Amazon Forecast 團隊將很樂意為您提供此使用案例的協助。請將電子郵件寄到 <amazonforecast-poc@amazon.com>,與 Amazon Forecast 的服務團隊聯繫。