[アップデート] Amazon ForecastでAutoML使用時に全アルゴリズムのメトリクスを取得できるようになりました

2019.11.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

DA事業本部の貞松です。今回もAmazon Forecastのアップデート関連です。

アップデート内容

Now get additional details/metrics around all your algorithm runs with AutoML

アップデート以前は、ForecastでAutoMLを使用した場合、最終的に採用されたアルゴリズムしか実行パラメータの詳細や評価のメトリクス、実行時エラーのエラーメッセージを確認できませんでした。

今回のアップデートにより、AutoMLによって実行された全てのアルゴリズムについて実行パラメータの詳細や評価のメトリクスを取得、確認できるようになりました。 これにより「どういった結果に基づいてAutoMLがこのアルゴリズムを採用したか」を確認することができる為、AutoMLを使って作成された予測子(学習済みの予測モデル)やそれを用いて作成される実際の予測に対して、妥当性をある程度把握できるようになります。

また、AutoMLを使った予測子作成の実行時エラーについても、エラーの発生したアルゴリズムそれぞれについてエラーメッセージを取得できるようになりました。これにより各アルゴリズム個別のデバッグが容易になり、問題のあるデータの修正に繋げやすくなりました。

コンソール上で動作確認

大前提として、予測子の作成(予測モデルの学習)の時点でAlgorithm selectionの設定はAutomatic(AutoML)を選択しておきます。

予測子の作成が完了したら、Predictorsの一覧から該当の予測子の画面を開きます。

メトリクスの確認

Algorithm metricsを確認すると、右肩にドロップダウンリストが追加されているのが確認できます。初期状態では「Winning algorithm (最終的に採用されたアルゴリズム)」が選択されています。(下図の例ではARIMAが選択されている) ちなみにこのリストの順番は評価の高い順に並んでいるようです。

リストから他のアルゴリズムを選択すると、Algorithm metrics枠内の数値が選択されたアルゴリズムによる結果に切り替わります。

Prophetを選択して評価指標の値を確認してみると、確かに今回のケースではARIMAと比較して誤差や損失の値が大きい(精度が低い)結果になっていることを確認できます。

Algorithm metricsに表示されている数値の見方については、 Amazon Forecast 開発者ガイド - 予測精度の評価 を参照してください。

予測子作成の実行時エラーメッセージの確認

予測子作成の実行時にエラーが発生した場合は、Predictorsの一覧から該当の予測子の画面を開いてFailed algorithm messageを確認します。

Algorithm metricsと同様に、右肩のドロップダウンリストからエラーが発生したアルゴリズムを選択することができます。 選択したアルゴリズムごとにエラーメッセージを確認することができるので、複数のアルゴリズムで別々の原因によるエラーが発生している場合もまとめて確認、データ修正等の対応を実施することができます。

AWS CLIを用いた動作確認

検証環境のAWS CLIバージョン

1.16.292

PredictorArnの取得

list-predictors コマンドを使用して、予測子の一覧を取得します。

$ aws forecast list-predictors

該当の予測子のPredictorArnを確認します。

予測子のメトリクス取得

get-accuracy-metrics コマンドを使用して、予測子のメトリクス一覧を取得します。

$ aws forecast get-accuracy-metrics --predictor-arn [確認済みのPredictorArn]

実行されたアルゴリズムごとのメトリクスを取得できました。

予測子の概要取得

describe-predictor コマンドを使用して、予測子のメトリクス一覧を取得します。

$ aws forecast describe-predictor --predictor-arn [確認済みのPredictorArn]

予測子の概要を取得できました。

予測子の作成で実行時エラーが発生している場合は、概要の中にある PredictorExecutionDetailsPredictorExecutions → Message でエラーが発生したアルゴリズムごとのエラーメッセージを確認することができます。

まとめ

AutoMLによって実行された全てのアルゴリズムについて実行パラメータの詳細や評価のメトリクス、実行時エラーのエラーメッセージを取得できることを確認しました。 Forecastはコンソール上での操作が非常に便利ですが、CLIを使うパターンも押さえておくと、実際の運用ケースに合わせてより柔軟に使えると思います。 前回の記事でも「今後のアップデートに期待」という締めでしたが、個人的に具体的な要望を挙げるならば「コンソール上でインポートされているデータセットの中身を確認できるようになってほしい」ですね。