Amazon MLS-C01: 時間序列與預測 — 學習指南
屬於 AWS Machine Learning Specialty MLS-C01 — 學習指南. 使用經過驗證的解答練習: Amazon 考試中心, 或參加限時模擬考試: ExamRoll.io.
演算法選擇與各種方法的使用時機
選擇正確的預測模型,首先要從資料的形狀與目標開始。當您處理的是單一、行為良好、具有長歷史記錄且季節性項目可解釋的時間序列時,ARIMA/SARIMA 這類傳統的單變量方法仍然是最佳選擇;您可以在 SageMaker 訓練腳本中使用 statsmodels 來實作這些方法,或是在 SageMaker Studio 中進行互動式實驗。當需要明確地建模並解釋由業務驅動的假日效應和多重季節性(每日/每週/每年)時,Prophet 風格的可分解模型就很有價值;這些模型通常在 notebook 中進行原型設計,並可在 SageMaker 中投入生產。對於大規模的機率性、多序列預測,請使用 DeepAR(SageMaker 內建演算法或 Amazon Forecast 的 DeepAR+),它能跨相關的時間序列進行學習,並產生分位數預測。重要的組態設定選項包括設定 time_freq、prediction_length 和 context_length(context_length 通常應 >= prediction_length)、選擇合適的概似函數(studentT 用於厚尾分佈,negative-binomial 用於計數/間歇性需求),以及為共變數啟用 use_feat_dynamic_real 或 use_feat_static_cat。當需要可解釋性與單一序列診斷時,請使用傳統模型;當您有許多相關序列,且需要經過校準的機率性輸出和內建的擴展功能時,則應優先選擇 DeepAR/Amazon Forecast。
資料準備:季節性、共變數與遺失值
好的預測需要仔細對齊時間戳記、頻率和共變數。務必將時間戳記標準化為一致的時區和頻率(為模型設定 time_freq)。透過將假日指標和特殊事件特徵新增為靜態或動態共變數,來捕捉已知的季節性和業務事件;將價格促銷、商店開業或行銷活動旗標等納入為動態特徵。遺失值必須謹慎處理:對於短暫的缺口,使用內插法或向前/向後填充;對於較長的缺口,使用基於模型的插補法,或在演算法支援遺失值的情況下將其遮罩(DeepAR 接受被遮罩的動態特徵)。對於有許多零值或過度離散計數的間歇性需求,可使用 negative-binomial 概似函數、嘗試匯總(例如,每週)以減少稀疏性,或在適合使用傳統方法時應用基於 Croston 的預處理。避免在共變數中洩漏未來資訊——動態特徵必須在預測範圍內是已知或可預測的。將中繼資料(item_id、category、store_id)儲存為靜態類別特徵,讓多序列模型能夠在不同項目間共享學習強度。
評估:機率性指標、回測與校準
機率性預測需要不同於點預測的評估標準。使用分位數損失(pinball loss)和連續排序機率分數(CRPS)來評估分佈品質,並報告關鍵分位數(例如 P50、P90)的覆蓋率,以驗證區間校準。避免對含有零值或間歇性需求的序列僅依賴 MAPE;應使用平均絕對尺度誤差(MASE)進行不受尺度影響的比較,或使用加權分位數損失來優先處理高收入的 SKU。實作帶有多個回測視窗的滾動原點(時間序列)交叉驗證,以捕捉時間上的不穩定性和季節性,並確保每個視窗都遵循季節性週期,讓保留資料集(holdouts)包含完整的季節性期間。透過預測區間命中率和類似 PIT 的直方圖來檢查校準;如果區間過窄,可考慮在 DeepAR 中增加 num_eval_samples 或調整概似函數的假設。常見的陷阱包括:使用在推論時無法取得的未來已知共變數、匯總資料時消除了關鍵的季節性,以及在單一靜態保留資料集上進行評估而錯過了模式轉變。應根據業務重要性而非簡單平均來匯總每個序列的指標,以反映決策的影響。
擴展、部署模式與決策標準
將預測擴展到數千或數百萬個序列,並將預測部署到生產環境中,會涉及架構上的權衡取捨。若要尋求一個託管式、擴展優先的解決方案,Amazon Forecast 能處理資料集群組(目標時間序列、相關時間序列、項目中繼資料)、自動化特徵工程、內建回測,以及用於批次或可匯出預測的彈性託管預測器;當您希望有一個服務能處理大量序列而無需客製化模型訓練時,它非常適合。若有客製化模型的需求,可使用 SageMaker 搭配 DeepAR(或客製化的 PyTorch/TF 模型),如此便能控制超參數、概似函數選擇和特徵工程;在 GPU 實例上進行訓練以提高速度,並使用 SageMaker Batch Transform 進行大量推論,或使用即時端點進行低延遲的服務。為了在擁有多個模型版本時實現成本效益,可以考慮使用多模型端點或由 S3 事件或 Step Functions 觸發的非同步批次管線。決策標準包括:是否需要客製化架構(選擇 SageMaker)、是否需要以最少維運進行跨序列學習(選擇 Forecast),以及是否需要低延遲的單一序列預測(優先考慮 SageMaker 即時端點)。常見的陷阱:context_length 配置不足、quantile 輸出設定錯誤,以及未根據業務影響對評估進行加權。
實務問題:使用案例情境
情境: Acme Retail 經營 5,000 家商店,並在 Amazon S3 中維護每日的銷售和促銷日誌。他們使用 SageMaker Studio 進行資料科學研究,並需要可擴展的生產預測來驅動庫存和促銷活動。
挑戰: 針對每個 SKU-商店組合,產生經過校準的 30 天機率性需求預測,此預測需考量假日和促銷活動、處理許多 SKU 的間歇性零銷售情況,並能擴展至夜間批次生產。
建議方法:
- 設定資料管線:將每日銷售和促銷資料擷取到 S3,使用 AWS Glue 進行編目並透過 Athena 公開;建立包含 timestamp、item_id、store_id、target_value 和動態特徵的資料集檔案。
- 在 SageMaker Studio 中建立模型原型:針對幾個具代表性的 SKU 嘗試 Prophet 風格的分解法,然後訓練 SageMaker DeepAR(設定
time_freq='D'、prediction_length=30、context_length=30–90、針對計數資料設定likelihood='negative-binomial'、num_eval_samples=100)。 - 為了擴展與生產:在 SageMaker 中排程夜間批次訓練或增量再訓練(或者,如果您偏好託管式預測,可選擇使用 Amazon Forecast 及其資料集群組和預測器),並使用 SageMaker Batch Transform 或 Forecast 批次匯出進行夜間大量推論。
- 使用分位數損失 (quantile loss) 和覆蓋率指標 (P50/P90) 進行滾動原點回測 (rolling-origin backtests) 來評估,並監控即時校準情況;如果區間覆蓋不足,請調整概似函數或增加
num_eval_samples。
基本原理: 使用 Glue/Athena 和 S3 可標準化資料存取,DeepAR(或 Forecast)能原生模擬多個相關序列並產生庫存決策所需的分位數,negative-binomial 可處理間歇性計數資料,而批次轉換則能實現具成本效益的夜間擴展。
← 自然語言處理與語音 · 所有領域 · 訓練、分散式訓練與超參數最佳化 →
練習這些題目 → · 在 ExamRoll.io 上限時練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
通過考試 →