【Amazon Forecastで時系列予測】④予測実行(推論)

AWSでAI・データ活用
Amazon Forecastは、Amazon.comの機械学習予測技術に基づいて、統計アルゴリズムと機械学習アルゴリズムを使用し、高い精度の時系列予測を提供する完全マネージド型サービスです。
全5回のコラムを通して、Amazon Forecastの概要、そして時系列予測を実際にAmazon Forecastでどのように実施していくのかを操作手順ベースでご紹介していきます。
シリーズ最終回となる今回は、「②予測モデルの作成(AutoML)」で作成した予測子を使って予測(推論)を行います。
1. はじめに
今回は「第3回:Amazon Forecastを使った時系列予測②予測モデルの作成(AutoML)」で作成した予測子を使って予測(推論)を行っていきます。
2. 分位数(Quantile)について
俗にいう上振れや下振れに対する考慮です。
Amazon Forecastは、百分位数(percentile)に基づいて、p10(10 percentile)、p50(50 percentile)、p90(90 percentile)の3つのデフォルト分位数で確率的予測を作成します。
このデフォルト分位数を実用に合わせて変更し、最大5つまで指定することもできます。
p50が統計的に中央値と呼ばれるもので、一般的に予測値といえばこのp50が多いですが、ビジネスに応じて見る予測値を選択することもできます。
例えば、過剰在庫や投資コストがリスクになる場合はp10を、品切れなどによる機会損失コストがリスクになる場合にはp90を見るといった使い方ができます。
3. 予測の作成
Generate forecasts > Start
※画像をクリックすると新しいタブで開きます。
予測名と予測子を選択し、予測を作成します。
※画像をクリックすると新しいタブで開きます。
- 予測名:bisol_covid19_forecast
- 学習済の予測子:bisol_covid19_predictor
- 分位数(quantile) :デフォルトのまま(10,50,90)
予測の作成が完了するとエンドポイントが作成され、予測結果を確認できるようになります。
※画像をクリックすると新しいタブで開きます。
4. 予測の取得
マネジメントコンソール上のForecast lookup
予測の結果はマネジメントコンソール上から簡単に確認することができます。
左メニューのForecast lookupをクリックし、確認したい予測やクエリ期間を指定します。
※画像をクリックすると新しいタブで開きます。
- 予測:bisol_covid19_forecast
- 開始日:2021/01/01
- 終了日:2021/02/18
- アイテムIDの指定(どの国に対して予測データを表示するか):Japan
左側に実績データ、右側に予測結果(p10、p50、p90)を30日分確認することができます。
※画像をクリックすると新しいタブで開きます。
バッチ推論的に全予測結果をエクスポートする
予測結果のエクスポートもマネジメントコンソール上から簡単に行えます。
予測の詳細画面 > Create forecast export
※画像をクリックすると新しいタブで開きます。
エクスポート名、予測など設定しエクスポートジョブを作成します。
※画像をクリックすると新しいタブで開きます。
- エクスポート名:bisol_covid19_forecast_export
- エクスポートしたい予測:bisol_covid19_forecast
- IAM(S3 Write):任意のIAMロールのAmazonリソースネーム(ARN)を入力
S3バケットにエクスポートするので、出力先S3バケットのWrite権限のあるIAMロールを用意します。 - エクスポート先のS3バケット:Amazon S3上のエクスポート先を入力
予測のエクスポートが終了するまで待ちます。
予測がエクスポートされたら、ステータスが 「Active」 に変わります。
※画像をクリックすると新しいタブで開きます。
指定したS3バケットに予測結果の入ったCSVファイルが出力されています。
※画像をクリックすると新しいタブで開きます。
S3 Selectで予測結果(p10、p50、p90)を確認できました。
※画像をクリックすると新しいタブで開きます。
単一アイテムの予測結果を即時取得する
マネジメントコンソールからではなく、QueryForecast APIで予測結果を取得することもできます。
ここではAWS CLIでAPIコマンドを実行してみました。
※画像をクリックすると新しいタブで開きます。
5. 予測結果
エクスポートした予測と実際の報告データをプロットしてみました。
ここまでの手順では記載していませんが、前回作成したCNN-QRアルゴリズムでの予測も別途行いました。
CNN-QRアルゴリズムでの予測結果の方が、比較的実際の報告数に沿っているように見えます。
※画像をクリックすると新しいタブで開きます。
6. まとめ
Amazon Forecastは時系列予測ができるAWSのサービスで、データの収集・前処理さえしておけば、GUI操作だけで時系列予測モデルの作成から予測結果の可視化やエクスポートまで簡単な手順で実行できました。
既に時系列データを蓄積していれば、すぐに活用できそうです。
今回はお試しレベルなのでまだ色々と検証する必要はありますが、もう少し細かくデータを調整していけばより正確な予測を出せそうだと感じました。
Amazon Forecastは予測する時系列に関連するデータや特徴データも組み合わせて将来の予測ができます。
実際のビジネスで必要とされる時系列予測においては、様々な要因を考慮した予測を行えるAmazon Forecastの応用範囲は広いのではないかと考えられます。
また、学習に利用するデータはAmazon S3上のCSV形式ファイルである必要があり、予測結果をAWSのBIサービスであるAmazon QuickSightに接続して可視化するためには、APIを叩き予測結果を一度S3にCSV出力してから連携する必要があるようです。
現時点でAmazon QuickSightに直接連携できるのはAmazon SageMakerのみとなっていますが、ここは今後のアップデートに期待したいところです。
もう少しアルゴリズムの理論的な話やAmazon Forecastをシステムに組み込んで運用を回すような検証も時間があればやってみたいと思います。
■商標について
Amazon Web Services、および、かかる資料で使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
【Amazon Forecastで時系列予測】シリーズ一覧(全5回)
第1回:Amazon Forecastとは
第2回:①データセットの準備
第3回:②予測モデルの作成(AutoML)
第4回:③予測モデルの作成(CNN-QR)