予測精度の評価 - Amazon Forecast

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

予測精度の評価

Amazon Forecast は、予測変数を評価するための精度メトリックスを生成し、予測を生成するために使用する選択を支援します。Forecastは、二乗平均誤差(RMSE)、重み付き分位損失(WQL)、平均絶対パーセント誤差(MAPE)、平均絶対スケール誤差(MASE)、および重み付き絶対パーセント誤差(WAPE)メトリックを使用して予測変数を評価します。

Forecast を使用すると、さまざまな予測タイプを使用して予測変数を評価できます。予測タイプは、分位数予測と平均予測のセットです。平均予測では点推定が得られますが、分位数予測では通常、さまざまな結果が得られます。

予測子の精度メトリクスを生成するために、Forecastバックテスト。これは、予測変数を履歴データに対してテストし、予測値を実際の値と比較するプロセスです。

Python ノートブック

予測子のメトリクス評価子の評価手順については、項目レベルのバックテストを使用したメトリックの計算

Forecast タイプの選択

Amazon Forecast では、予測タイプを使用して予測を作成し、予測変数を評価します。Forecast タイプには、次の 2 つの形式があります。

  • 平均予測タイプ-期待値として平均を使用する予測。通常、特定の時点のポイント予測として使用されます。

  • 分位予測子のタイプ-指定した分位数での予測。通常、予測間隔を提供するために使用されます。予測間隔とは、予測の不確実性を考慮する可能性のある値の範囲です。たとえば、0.65分位数は、時間の 65% の観測値よりも低い値を推定します。

デフォルトでは、Forecast 変数予測タイプに次の値が使用されます。0.1(P10)、0.5(P50)、0.9(P90) である。カスタム予測タイプを最大 5 つまで選択できます。これには、meanから及ぶ分位数0.01(P1) を0.99(P99) である。

分位数は、予測の上限と下限を提供できます。たとえば、予測タイプの0.1(P10) と0.9(P90) は、80% 信頼区間と呼ばれる値の範囲を提供します。観測値はP10 の値の 10% より低くなることが予想されます。P90 の値は観測値の 90% より高くなることが予想されます。p10とP90で予測を生成することで、真の値が時間の 80% の間にあると予想できます。この値の範囲は、次の図の P10 と P90 の間のシェーディング領域によって示されています。

下限予測のコストが過剰予測のコストと異なる場合は、分位数予測をポイント予測として使用することもできます。たとえば、一部の小売ケースでは、在庫不足のコストは、在庫超過のコストよりも高くなります。このような場合、0.65(P65)の予測は、中央値(P50)または平均予測よりも有益です。

予測変数をトレーニングする場合、Amazon Forecastソフトウェア開発キット(SDK)と Amazon Forecastコンソールを使用して、カスタム予測タイプを選択できます。

Forecast SDK

の使用CreatePredictorオペレーションで、カスタム予測タイプをForecastTypesパラメータ。パラメータを文字列の配列としてフォーマットします。

たとえば、予測子を作成するには、0.01,mean,0.65, および0.99予測タイプを使用するには、次のコードを使用します。

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

[]予測子のトレーニングステージで、カスタム予測タイプをForecast タイプフィールド。選択新しい予測タイプの追加をクリックし、予測タイプの値を入力します。

たとえば、予測子を作成するには、0.01,mean,0.65, および0.99予測タイプで、次の値を入力します。Forecast タイプ以下に示すフィールドです。

Backtesting

Amazon Forecastでは、バックテストを使用してパラメータを調整し、精度指標を生成します。バックテストを実行するために、Forecastは時系列データを自動的に2つのセット(トレーニングセットとテストセット)に分割します。トレーニングセットは、モデルをトレーニングし、テストセット内のデータポイントの予測を生成するために使用されます。Forecastは、予測された値とテスト・セット内の観測値を比較して、モデルの精度を評価します。

Forecastでは、バックテストを使用して精度メトリックを計算します。複数のバックテストを実行する場合、Forecast はすべてのバックテストウィンドウで各メトリックを平均化します。

Forecast では、バックテスト・プロセスから充填された値が除外され、特定のバックテスト・ウィンドウ内に充填された値を持つ品目は、そのバックテストから除外されます。これは、Forecastはバックテスト中に予測値と観測値のみを比較し、充填された値は観測値ではないためです。

バックテストパラメータの設定

デフォルトでは、Forecastは1つのバックテストを計算し、バックテストウィンドウ(テストセット)のサイズは予測範囲(予測ウィンドウ)の長さと等しくなります。あなたは、両方を設定することができますバックテストウィンドウの長さバックテストシナリオの数予測子を訓練するとき。

バックテストウィンドウは、少なくとも予測範囲と同じ大きさで、ターゲット時系列データセット全体の半分の長さよりも小さくなければなりません。あなたは、1から5バックテストの中から選択することができます。

一般に、バックテストの数を増やすと、より信頼性の高い精度メトリックが生成されます。これは、テスト中に時系列の大部分が使用され、Forecastはすべてのバックテストでメトリックの平均値を取得できるためです。

バックテストパラメーターは、Amazon Forecastソフトウェア開発キット (SDK) と Amazon Forecastコンソールを使用して設定できます。

Forecast SDK

の使用CreatePredictor操作では、バックテストパラメーターを評価パラメータデータ型です。バックテスト中にテストセットの長さをBackTestWindowOffsetパラメータを持つバックテストウィンドウの数と、NumberOfBacktestWindowsパラメータ。

たとえば、10 時間ポイントのテストセットで 2 つのバックテストを実行するには、次のコードを使用します。

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

[]予測子のトレーニングステージで、バックテスト中のテストセットの長さをバックテストウィンドウのオフセットフィールドと、バックテストウィンドウの数がバックテストウィンドウの数フィールド。

たとえば、10 時間ポイントのテストセットで 2 つのバックテストを実行するには、次の値を設定します。

バックテスト結果のエクスポート

注記

AutoMLの場合、Forecastは勝利アルゴリズムのバックテスト結果のみをエクスポートします。

Forecastを使用すると、バックテスト中に生成された予測値と精度メトリックをエクスポートできます。これらのエクスポートを使用して、特定の時点および分位数の特定の項目を評価し、予測変数をよりよく理解できます。バックテストエクスポートは指定された S3 の場所に送信され、次の 2 つのフォルダが含まれます。

  • 予測値: 各バックテストの各予測タイプで予測値を持つ CSV ファイルが含まれます。

  • 精度-メトリック値: すべてのバックテストの平均とともに、各バックテストのメトリックを含む CSV ファイルが含まれます。これらのメトリックには、各分位数のWQL、平均WQL、RMSE、MASE、MAPE、およびWAPEが含まれます。

-forecasted-valuesフォルダーには、各バックテストウィンドウの各予測タイプの予測値が含まれます。また、アイテム ID、ディメンション、タイムスタンプ、ターゲット値、バックテストウィンドウの開始時刻と終了時刻に関する情報も含まれます。

-accuracy-metrics-valuesフォルダーには、各バックテストウィンドウの精度指標と、すべてのバックテストウィンドウの平均指標が含まれます。指定した分位数ごとに WQL メトリック、平均 WQL、RMSE、MASE、MAPE、および WAPE メトリックが含まれます。エクスポートには、アイテム ID、ディメンション、バックテストウィンドウの開始時刻と終了時刻に関する情報も含まれます。個々のバックテストのメトリクスには、backtest_windowの値Computedの値を持つのに対し、バックテストの平均値はSummary。NaN 値を持つアイテムのメトリックスは、not definedバックテストのエクスポートファイルで。

両方のフォルダ内のファイルは、命名規則に従います。<ExportJobName>_<ExportTimestamp>_<PartNumber>.csv

バックテストの結果は、Amazon Forecastソフトウェア開発キット(SDK)と Amazon Forecastコンソールを使用してエクスポートできます。

Forecast SDK

の使用CreatePredictorBacktestExportJobオペレーションで、S3 の場所と IAM ロールをDataDestinationオブジェクトとPredictorArnおよびPredictorBacktestExportJobName

例:

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

予測変数を予測子ページで. 左予測子のメトリクス[] セクションで、[バックテストの結果をエクスポートする

[]予測子バックテストエクスポートの作成ステージで、[エクスポート名],IAM ロール, およびS3 プレディクタバックテストのエクスポート場所フィールド。

精度メトリクスの解釈

Amazon Forecast では、二乗平均誤差(RMSE)、加重分位点損失(WQL)、平均加重分位点損失(平均 WQL)、平均絶対スケール誤差(MASE)、平均絶対パーセント誤差(MAPE)、および加重絶対パーセント誤差(WAPE)メトリックスを提供し、予測変数を評価します。Forecastは、全体的な予測変数のメトリックとともに、バックテストの各ウィンドウのメトリックを計算します。

Amazon Forecastソフトウェア開発キット(SDK)と Amazon Forecastコンソールを使用して、予測変数の精度指標を表示できます。

Forecast SDK

の使用GetAccuracyMetrics操作, yあなたの指定PredictorArnをクリックして、各バックテストの RMSE、MASE、MAPE、WAPE、平均 WQL、および WQL メトリックを表示します。

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

予測変数を予測子ページで. 予測子の精度メトリクスについては、予測子のメトリクスセクションに追加します。

注記

平均WQL、WQL、RMSE、MASE、MAPE、およびWAPEメトリックの場合、値が低いほど優れたモデルを示します。

加重分位点損失(WQL)

加重分位損失(WQL)メトリックは、指定された分位数でのモデルの精度を測定します。これは、過少予測と過剰予測に異なるコストがある場合に特に便利です。重み (τ)を使用すると、アンダー予測とオーバー予測に対して異なるペナルティを自動的に組み込むことができます。

損失関数は以下のように計算されます。

各パラメータの意味は次のとおりです。

τ-セット内の分位点 {0.01、0.02、...、0.99}

Qi,t(τ)-モデルが予測するτ分位数。

yi,t-ポイント(i、t)の観測値

WQLの分位数(τ)は、0.01(P1)から0.99(P99)の範囲であり得る。WQL メトリックは、平均予測に対して計算できません。

デフォルトでは、ForecastはWQLを0.1(P10)、0.5(P50)、0.9(P90) である。

  • P10 (0.1)-真の値は予測値の 10% より低くなることが予想されます。

  • P50 (0.5)-真の値は予測値の 50% より低くなることが予想されます。これは、予測値とも呼ばれます。

  • P90 (0.9)-真の値は予測値の 90% より低くなることが予想されます。

小売では、在庫不足のコストは、在庫超過のコストよりも高くなることが多く、P75(τ= 0.75)は、中央分位数(P50)での予測よりも有益です。このような場合、WQL [0.75] は過小予測(0.75)に大きなペナルティ加重を割り当て、過小予測(0.25)に小さなペナルティ加重を割り当てます。

上の図は、WQL [0.50] とWQL [0.75] での需要予測の相違を示しています。P75の予測値は、P50の予測値よりも大幅に高くなります。これは、P75の予測値は時間の 75% の需要を満たすことが予想されるのに対し、P50の予測は時間の 50% の需要を満たすことが予想されるためです。

指定のバックテスト期間では、すべての項目と時間の観測値の合計がほぼゼロの場合、加重分位損失式は未定義になります。このような場合、Forecast は重み付けされていない分位損失(WQL 式の分位損失)を出力します。

また、Forecast は平均 WQL を計算します。これは、指定されたすべての分位数に対する加重分位数の損失の平均値です。デフォルトでは、これはWQL0.10]、WQL [0.50]、およびWQL [0.90] の平均になります。

加重絶対パーセント誤差(WAPE)

加重絶対パーセント誤差(WAPE)は、観測値からの予測値の全体的な偏差を測定します。WAPEは、観測値の合計と予測値の合計を取り、それらの2つの値の間の誤差を計算することによって計算されます。値が小さいほど、モデルの精度が高くなります。

各パラメータの意味は次のとおりです。

yi,t-ポイント(i、t)の観測値

ŷi,t-点 (i, t) における予測値

Forecast では、平均予測を予測値として使用します。i,t

WAPE は、二乗誤差の代わりに絶対誤差を使用するため、二乗平均二乗誤差(RMSE)よりも外れ値に対して堅牢です。

Amazon Forecastは以前、WAPE指標を平均絶対誤差率(MAPE)と呼んでおり、予測値として中央値(P50)を使用していました。Forecast では、平均予測を使用してWAPEを計算するようになりました。WQL [0.5] メトリックは、次に示すように、WAPE [中央値] メトリックに相当します。

二乗平均平方根誤差 (RMSE)

二乗平均平方誤差(RMSE)は、二乗誤差の平均の平方根です。したがって、他の精度メトリックよりも外れ値に敏感です。値が小さいほど、モデルの精度が高くなります。

各パラメータの意味は次のとおりです。

yi,t-ポイント(i、t)の観測値

ŷi,t-点 (i, t) における予測値

nT-テストセット内のデータポイントの数

Forecast では、平均予測を予測値として使用します。i,t。予測指標を計算する場合、nTはバックテストウィンドウ内のデータポイントの数です。

RMSEは残差の2乗値を使用し、外れ値の影響を増幅します。大きな誤予測がごくわずかしか発生しないユースケースでは、RMSE がより関連性の高い指標になります。

2020年11月11日以前に作成された予測変数は、デフォルトで0.5分位(P50)を使用してRMSEを計算しました。Forecast」では、平均予測が使用されるようになりました。

平均絶対パーセント誤差 (MAPE)

平均絶対パーセント誤差(MAPE)は、時間単位ごとの観測値と予測値の間のパーセント誤差の絶対値を取得し、それらの値を平均化します。値が小さいほど、モデルの精度が高くなります。

各パラメータの意味は次のとおりです。

At-ポイントの観測値t

Ft-ポイントでの予測値t

n-時系列のデータポイントの数

Forecast では、平均予測を予測値Fとして使用します。t

MAPE は、時間ポイント間で値が大きく異なり、外れ値が大きな影響を及ぼす場合に便利です。

平均絶対スケール誤差 (MASE)

平均絶対スケール誤差 (MASE) は、平均誤差をスケーリング係数で割って計算されます。このスケーリング係数は、季節性の値、mで、予測頻度に基づいて選択されます。値が小さいほど、モデルの精度が高くなります。

各パラメータの意味は次のとおりです。

Yt-ポイントの観測値t

Yt-m-ポイントの観測値t-m

ej-ポイントでのエラーj(観測値-予測値)

m-季節性の値

Forecast では、平均予測を予測値として使用します。

MASE は、本質的に周期的なデータセットや季節的な特性を持つデータセットに最適です。たとえば、夏には需要が高く、冬には需要が低い品目の予測には、季節の影響を考慮するとメリットがあります。

HPO および AutoML

デフォルトでは、Amazon Forecastは0.1(P10)、0.5(P50)、0.9(P90) ハイパーパラメータ最適化 (HPO) 時のハイパーパラメータチューニングおよびAutoML時のモデル選択のための分位数 予測変数の作成時にカスタムForecast タイプを指定すると、予測は HPO および AutoML の間にこれらの予測タイプを使用します。

カスタム予測タイプが指定されている場合、Forecastはこれらの指定された予測タイプを使用して、HPO および AutoML における最適な結果を判断します。HPOの間、Forecastは最初のバックテストウィンドウを使用して最適なハイパーパラメータ値を検索します。AutoML では、Forecast はすべてのバックテストウィンドウ間の平均値と、HPO の最適なハイパーパラメータ値を使用して、最適なアルゴリズムを見つけます。

AutoML と HPO の両方で、Forecast は予測タイプの平均損失を最小化するオプションを選択します。また、次の精度指標のいずれかを使用して、AutoML および HPO 中に予測変数を最適化することもできます。平均加重分位損失(平均 WQL)、加重絶対パーセント誤差(WAPE)、二乗平均誤差(RMSE)、平均絶対パーセント誤差(MAPE)、または平均絶対スケール誤差(MASE)

Amazon Forecastソフトウェア開発キット(SDK)とAmazon Forecastコンソールを使用して、最適化指標を選択できます。

Forecast SDK

の使用CreatePredictorオペレーションで、カスタム予測タイプをObjectiveMetricパラメータ。

-ObjectiveMetricパラメーターは以下の値を使用できます。

  • AverageWeightedQuantileLoss-平均加重分位点損失

  • WAPE-加重絶対パーセント誤差

  • RMSE-二乗平均誤差

  • MAPE-平均絶対パーセント誤差

  • MASE-平均絶対スケール誤差

たとえば、AutoML を使用して予測変数を作成し、平均絶対スケール誤差(MASE)精度メトリックを使用してオプトマイズするには、次のコードを使用します。

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

[]予測子のトレーニングステージで展開します。自動 (AutoML)。左目標メトリクスセクションで、予測変数のオプトマイズに使用する精度指標を選択します。

たとえば、次の図は、AutoML で作成され、平均絶対スケール誤差(MASE)精度メトリックを使用してオプトミングされた予測変数を示しています。

コンソールを使用する場合、目標子のメトリクスは、AutoML を使用して予測子を作成する場合にのみ指定できます。アルゴリズムを手動で選択する場合は、HPO の目標指標を指定できません。