評估預測器準確性 - Amazon Forecast

Amazon Forecast 不再提供給新客戶。Amazon Forecast 的現有客戶可以繼續正常使用該服務。了解更多」

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

評估預測器準確性

Amazon Forecast 會產生準確度指標來評估預測值,並協助您選擇用來產生預測值的準確度指標。Forecast 會使用均方根誤差 (RMSE)、加權分位數損失 (WQL)、平均絕對百分比誤差 (MAPE)、平均絕對縮放誤差 (MASE) 和加權絕對誤差 (WAPE) 量度來評估預測值。

Amazon Forecast 使用回溯測試來調整參數並產生準確度指標。在回溯測試期間,Forecast 會自動將您的時間序列資料分割為兩個集合:訓練集和測試集。訓練集用於訓練模型,並產生測試集中資料點的預測。Forecast 會將預測值與測試集中的觀察值進行比較,來評估模型的準確度。

「Forecast」可讓您使用不同的預測型態來評估預測值,這些型態可以是一組分位數預測與平均預測。平均預測提供了一個點估計,而分位數預測通常提供一系列可能的結果。

蟒蛇筆記本

如需評估預測 step-by-step 指標的指南,請參閱使用項目層級回溯測試計算指標。

解譯準確指標

Amazon Forecast 提供均方根誤差 (RMSE)、加權分位數損失 (WQL)、平均加權分位數損失 (平均 WQL)、平均絕對縮放誤差 (MASE)、平均絕對誤差 (MAPE) 和加權絕對誤差 (WAPE) 指標來評估您的預測值。「Forecast」會與整體預測值的指標一起計算每個回測時段的指標。

您可以使用 Amazon 預測軟體開發套件 (SDK) 和 Amazon Forecast 測主控台,檢視 Amazon Forecast 測值的準確度指標。

Forecast SDK

您可以使用GetAccuracyMetrics作業PredictorArn來檢視每個回溯測試的 RMSE、MASE、MAPE、WAPE、平均 WQL 和 WQL 度量。

{ "PredictorArn": "arn:aws:forecast:region:acct-id:predictor/example-id" }
Forecast Console

在 [預測值] 頁面上選擇您的預測值。預測值的準確度量會顯示在「預測指標」區段中。

注意

對於平均 WQL、WQL、RMSE、MASE、MASE、MAPE 和 WAPE 度量,較低的值表示較高的模型。

加權分位數損耗(WQL)

加權分位數損失 (WQL) 量度在指定分位數測量模型的準確度。當有不同的預測和過度預測成本時,它特別有用。通過設置 WQL 函數的權重(),您可以自動納入不同的處罰,用於不足預測和過度預測。

損耗函數的計算方式如下。

Mathematical equation for weighted quantile loss function with tau parameter.
其中:

- 集合中的一個分位數 {0.01, 0.02,..., 0.99}

qi,t()-模型預測的分位數。

yi,t-點處的觀測值 (i, t)

WQL 的分位數()的範圍從 0.01(P1)到 0.99(P99)。無法針對平均預測計算 WQL 量度。

依預設,Forecast 會以0.1 (P10)、(P50) 和0.50.9 (P90) 的位置計算 WQL。

  • P10(0.1)-真實值預計將低於時間的預測值 10%。

  • P50(0.5)-真實值預計將低於時間的預測值 50%。這也被稱之為中位數預測。

  • P90(0.9)-真實值預計將低於 90% 的時間的預測值。

在零售業中,存貨不足的成本通常高於庫存過剩的成本,因此 P75(= 0.75)的預測比在中位分位數(P50)的預測更具信息性。在這些情況下,WQL [0.75] 將較大的罰款權重分配給預測不足(0.75),並將較小的罰款權重分配給過度預測(0.25)。

Two probability distribution curves showing demand forecasting at P50 and P75 quantiles.

上圖顯示了 WQL [0.50] 和 WQL [0.75] 的不同需求預測。P75 的預測值明顯高於 P50 的預測值,因為 P75 預測預測可以滿足 75% 的時間需求,而 P50 預測只能滿足 50% 的時間需求。

在給定的回測視窗中,當所有項目和時間點的觀測值總和大約為零時,加權分位數損失運算式是未定義的。在這些情況下,Forecast 會輸出未加權的分位數損失,這是 WQL 運算式中的分子。

Forecast 還計算平均 WQL,這是所有指定分位數的加權分位數損失的平均值。默認情況下,這將是 WQL [0.10],WQL [0.50] 和 WQL [0.90] 的平均值。

加權絕對誤差百分比 (WAPE)

加權絕對誤差百分比 (WAPE) 可測量預測值與觀測值的整體偏差。WAPE 通過取觀察值的總和和和預測值的總和,並計算這兩個值之間的誤差來計算。較低的值表示較精確的模型。

在給定的回測視窗中,當所有時間點和所有項目的觀測值總和大約為零時,加權絕對誤差百分比表示式是未定義的。在這些情況下,「Forecast」會輸出未加權絕對誤差總和,這是 WAPE 運算式中的分子。

Mathematical formula for WAPE showing summation of absolute differences divided by sum of absolute values.
其中:

yi,t-點處的觀測值 (i, t)

i,t-在點的預測值 (i, t)

Forecast 使用平均預測作為預測值, 例如i,t.

與均方根誤差(RMSE)相比,WAPE 對異常值更強大,因為它使用絕對誤差而不是平方誤差。

Amazon Forecast 先前將 WAPE 指標稱為平均絕對誤差百分比 (MAPE),並使用中位數預測 (P50) 作為預測值。Forecast 現在使用平均預測來計算 WAPE。WQL [0.5] 量度等於 WAPE [中位數] 量度,如下所示:

Mathematical equation showing the equivalence of wQL[0.5] and WAPE[median] metrics.

均方根誤差 (RMSE)

均方根誤差 (RMSE) 是平方誤差平均值的平方根,因此對異常值比其他準確度量更敏感。較低的值表示較精確的模型。

Mathematical formula for Root Mean Square Error (RMSE) with summation and square root.
其中:

yi,t-點處的觀測值 (i, t)

i,t-在點的預測值 (i, t)

NT-測試集中的數據點的數量

Forecast 使用平均預測作為預測值, 例如i,t. 計算預測指標時,NT 是回測視窗中的資料點數量。

RMSE 使用殘餘的平方值,這將放大離群值的影響。在只有少數大量錯誤可能非常昂貴的使用案例中,RMSE 是更相關的指標。

2020 年 11 月 11 日之前建立的預測值預設使用 0.5 分位數 (P50) 計算 RMSE。「Forecast」現在使用平均預測。

平均絕對誤差百分比 (MAPE)

平均絕對誤差百分比 (MAPE) 採用每個時間單位的觀察值和預測值之間百分比誤差的絕對值,然後對這些值進行平均。較低的值表示較精確的模型。

Mathematical formula for Mean Absolute Percentage Error (MAPE) calculation.
其中:

At-在點 t 處的觀測值

Ft-在點 t 的預測值

n-時間序列中的資料點數目

Forecast 使用平均預測作為預測值 Ft

對於時間點和離群值之間的值明顯差異會產生重大影響的情況,MAPE 非常有用。

平均絕對縮放誤差 (MASE)

平均絕對縮放誤差 (MASE) 的計算方式是將平均誤差除以縮放係數。此比例因子取決於季節性值 m,該值是根據預測頻率選取的。較低的值表示較精確的模型。

Mathematical formula for Mean Absolute Scaled Error (MASE) with summation and absolute value notations.
其中:

Yt-點 t 處的觀測值

Yt-m-點 t-m 處的觀測值

ej-在點 j 的誤差(觀測值-預測值)

米-季節性價值

Forecast 使用平均預測作為預測值。

MASE 非常適合具有週期性或具有季節性屬性的數據集。例如,對夏季高需求和冬季需求低的項目進行預測,可以從考慮到季節性影響中受益。

匯出準確指標

注意

匯出檔案可以直接從資料集匯入傳回資訊。如果匯入的資料包含公式或命令,這會使檔案容易受到 CSV 插入的影響。因此,匯出的檔案可能會提示安全性警告。若要避免惡意活動,請在讀取匯出的檔案時停用連結和巨集。

Forecast 可讓您匯出回溯測試期間產生的預測值和準確度量。

您可以使用這些匯出來評估特定時間點和分位數的特定項目,並更好地瞭解您的預測值。回測匯出會傳送至指定的 S3 位置,並包含兩個資料夾:

  • 預測值:包含 CSV 或 Parquet 檔案,每個回溯測試的每個預測類型都有預測值。

  • accuracy-metrics-values:包含 CSV 或 Parquet 檔案,其中包含每個回測的度量,以及所有回溯測試的平均值。這些指標包括每個分位數、平均 WQL、RMSE、MASE、MAP、MAPE 和 WAPE 的 WQL。

forecasted-values檔案夾包含每個回溯測試期間之每個預測型態的預測值。它還包括項目 ID、維度、時間戳記、目標值以及回溯測試視窗開始和結束時間的資訊。

accuracy-metrics-values文件夾包含每個回測時段的準確性指標,以及所有回測時段的平均指標。它包含每個指定分位數的 WQL 度量,以及平均 WQL、RMSE、MASE、MAPE 和 WAPE 度量。

兩個資料夾中的檔案都遵循命名慣例:<ExportJobName>_<ExportTimestamp>_<PartNumber>.csv

您可以使用 Amazon Forecast 軟體開發套件 (SDK) 和 Amazon Forecast 主控台匯出準確度指標。

Forecast SDK

使用CreatePredictorBacktestExportJob操作,在DataDestination物件中指定 S3 位置和 IAM 角色,以PredictorArn及和PredictorBacktestExportJobName

例如:

{ "Destination": { "S3Config": { "Path": "s3://bucket/example-path/", "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole" } }, "Format": PARQUET; "PredictorArn": "arn:aws:forecast:region:predictor/example", "PredictorBacktestExportJobName": "backtest-export-name", }
Forecast Console

在 [預測值] 頁面上選擇您的預測值。在「預測指標」區段中,選擇「匯出回溯測試結果」。

建立預測器回測匯出階段,設定匯出名稱IAM 角色S3 預測器回測匯出位置欄位

Form for exporting predictor backtest data to S3, with fields for name, IAM role, and location.

選擇 Forecast 類型

Amazon Forecast 使用預測類型來建立預測和評估預測值。Forecast 類型有兩種形式:

  • 平均預測類型-使用平均值作為預期值的預測。通常用作給定時間點的點預測。

  • 分位數預測類型-指定分位數的預測。通常用於提供預測間隔,預測間隔是一系列可能的值,以說明預測不確定性。例如,在分位0.65數的預測將估計低於觀測值 65% 的時間值。

依預設,「Forecast」會針對預測值預測類型使用下列值:0.10.5(P10)、(P50) 和0.9 (P90)。您最多可以選擇五種自訂預測類型mean,包括0.01 (P1) 到0.99 (P99) 的分位數。

分位數可以為預測提供上限和下限。例如,使用預測類型0.1 (P10) 和0.9 (P90) 可提供稱為 80% 信賴區間的值範圍。觀測值預計將低於時間的 P10 值 10%,並且 P90 值預期會高於 90% 時間的觀測值。通過在 p10 和 P90 生成預測,您可以期望真實值落在 80% 的時間範圍之間。下圖中 P10 和 P90 之間的著色區域描繪了此值範圍。

Graph showing forecast quantiles with P99, P90, P50, P10, and P1 lines over time.

當預測不足的成本與過度預測的成本不同時,您也可以使用分位數預測作為點預測。例如,在某些零售情況下,庫存不足的成本高於庫存過剩的成本。在這些情況下,0.65(P65)的預測比中位數(P50)或平均預測更具信息性。

訓練預測值時,您可以使用 Amazon 預測軟體開發套件 (SDK) 和 Amazon Forecast 測主控台選擇自訂預測類型。

Forecast SDK

使用作CreateAutoPredictor業,在ForecastTypes參數中指定自訂預測類型。將參數格式化為字串陣列。

例如,若要在、、和預測類型上0.01建立0.99預測值,請使用下列程式碼。mean0.65

{ "ForecastTypes": [ "0.01", "mean", "0.65", "0.99" ], },
Forecast Console

在「訓練 Forecast 值」階段中,在「預測類型」欄位中指定自訂預測類型。選擇「新增預測類型」,然後輸入預測型態值。

例如,若要使用、、和 Forecast 類型建立0.99預測值0.01mean0.65,請在下面顯示的 [預測類型] 欄位中輸入下列值。

Form for entering forecast types with fields for type names and quantile values between .01 and .99.

使用舊式預測值

設定回溯測試參數

Forecast 使用回溯測試來計算準確度量。如果您執行多個回溯測試,「Forecast」會在所有回測時段中平均每個測量結果。依預設,「Forecast」會計算一個回溯測試,回溯測試時段 (測試集) 的大小等於預測總時程 (預測期間) 的長度。訓練預測值時,您可以同時設定回測視窗長度回溯測試案例的數目

Forecast 會省略回溯測試程序中的填滿值,並且在給定回測期間內具有填滿值的任何料號都將從該回溯測試中排除。這是因為 Forecast 僅在回溯測試期間將預測值與觀察值進行比較,並且填充值不是觀察到的值。

回測時段至少必須與預測時程一樣大,且小於整個目標時間序列資料集的一半長度。您可以選擇 1 到 5 個回溯測試。

Graph showing training and testing periods for four backtest scenarios over time.

通常,增加回溯測試的數量會產生更可靠的準確度量,因為在測試期間使用較大一部分的時間序列,並且 Forecast 能夠在所有回測中取得平均指標。

您可以使用 Amazon 預測軟體開發套件 (SDK) 和 Amazon Forecast 測主控台來設定回溯測試參數。

Forecast SDK

使用該CreatePredictor操作,在數EvaluationParameters據類型中設置回測參數。使用參數指定回溯測試期間測試集的長度,以及帶有BackTestWindowOffset參數的回溯測試窗口NumberOfBacktestWindows數。

例如,若要使用 10 個時間點的測試集執行 2 個回溯測試,請使用下列程式碼。

"EvaluationParameters": { "BackTestWindowOffset": 10, "NumberOfBacktestWindows": 2 }
Forecast Console

在「訓練預測器」階段中,使用「回溯測試窗口偏移量」字段設置回測期間的測試集長度,以及帶有回測窗口數字段的回測窗口數量。

例如,若要使用 10 個時間點的測試集執行 2 個回溯測試,請設定下列值。

Input fields for number of backtest windows and backtest window offset with example values.

HPO 和 AutoML

依預設,Amazon Forecast 會在超參數最佳化0.5 (HPO) 期間使用0.9 (P10)、(P50) 和 (P90) 分位數進行超參數調整,以及在 AutoML 期間選取模型。0.1如果您在建立 Forecast 值時指定自訂預測類型,則「預測」會在 HPO 與 AutoML 期間使用這些預測類型。

如果指定了自訂 Forecast 類型,則預測會使用這些指定的預測類型來決定 HPO 和 AutoML 期間的最佳結果。在 HPO 期間,Forecast 會使用第一個回溯測試視窗來尋找最佳的超參數值。在 AutoML 期間,Forecast 會使用所有回測期間的平均值,以及 HPO 的最佳超參數值來尋找最佳演算法。

對於 AutoML 與 HPO,「Forecast」會選擇可將預測型態平均損失降至最低的選項。您也可以使用下列其中一個準確度量來最佳化 AutoML 和 HPO 期間的預測值:平均加權分位數損失 (平均 WQL)、加權絕對誤差 (WAPE)、根平均平方誤差 (RMSE)、平均絕對百分比誤差 (MAPE) 或平均絕對縮放誤差 (MASE)。

您可以使用 Amazon 預測軟體開發套件 (SDK) 和 Amazon 預測主控台選擇最佳化指標。

Forecast SDK

使用作CreatePredictor業,在ObjectiveMetric參數中指定自訂預測類型。

ObjectiveMetric參數接受下列值:

  • AverageWeightedQuantileLoss-平均加權分位數損失

  • WAPE-加權絕對百分比誤差

  • RMSE-均方根誤差

  • MAPE-平均絕對誤差百分比

  • MASE-平均絕對縮放誤差

例如,若要使用 AutoML 建立預測值,並使用「平均絕對縮放誤差」(MASE) 準確度量進行最佳化,請使用下列程式碼。

{ ... "PerformAutoML": "true", ... "ObjectiveMetric": "MASE", },
Forecast Console

在「列車預測器」階段中,選擇「自動 (AutoML)」。在「目標量度」區段中,選擇用於最佳化預測值的準確度量。

例如,下圖顯示使用 AutoML 建立並使用「平均絕對縮放誤差」(MASE) 精確度量進行最佳化的預測值。

使用主控台時,您只能在使用 AutoML 建立預測值時指定「目標」量度。如果您手動選取演算法,則無法指定 HPO 的「目標」量度。