LoginSignup
2
3

More than 3 years have passed since last update.

Amazon Forecast を使った予測の手順まとめ

Last updated at Posted at 2020-07-21

はじめに

今回は、Amazon Forecast を用いた予測を実施します。手順は以下となります。
AWS 公式の Amazon Forecast の開発ガイドについては、下記リンク参照で。

■リンク
Amazon Forecast 開発者ガイド

■手順

①予測するデータセットの準備(csv を S3 にインポートしておく)
②Amazon Forecast に csv データをインポート
③トレーニングモデルの作成
④予測の実施

Amazon Forecast とは

■Amazon Forecas の特徴

  • 時系列データと、それに関するデータを組みあせて予測を実施
  • 一度に複数のアイテムの予測をすることが可能(最大100,000)
  • 予測結果は csv にして S3 にエクスポート可能
  • 予測をしたい内容に合わせて、以下からドメインを選択して予測を実施

■Amazon Forecast のドメイン一覧

  • RETAIL:小売の需要予測
  • INVENTORY_PLANNING:サプライチェーンとインベントリの計画
  • EC2 CAPACITY:EC2 のキャパシティ予測
  • WORK_FORCE:従業員の計画(労働力需要)
  • WEB_TRAFFIC:今後のウェブトラフィックの見積もり
  • METRICS:収益、およびキャッシュフローなどの予測メトリクス
  • CUSTOM:その他すべての時系列予測のタイプ

予測準備

csv の準備

今回は予測の実施にあたって、2つの csv を用意しました。

■用意した csv データ

  • target_time_series:予測をしたいcsv データ。こちらの csv データだけでも予測の実施は可能
  • related_time_series:target_time_series の補助となる csv データ(天候や気温、曜日など説明変数にあたるデータ)

今回は、RETAIL というドメインを利用して予測を行いたいと思います。ドメインごとに必要な項目が異なりますので、注意しましょう。また、Amazon Forecast で予測できる期間はインポートしたデータの1/3までです。今後1ヶ月の予測をしたい場合は、少なくとも直近3ヶ月分のデータが必要となります。

■RETAILドメインを利用する場合のcsv データセットタイプに必要な項目

  • target_time_series データセットに必要な項目
    • item_id (string) :需要を予測する商品名や商品の ID など
    • timestamp (teimstamp):時系列
    • demand (float) :時系列ごとの商品の販売数。Amazon Forecast が予測を生成するターゲットフィールド
    • location(string):商品の販売先店舗や地域名など(※任意で使用)

2020-07-17_15h37_55.png

  • related_time_series データセットに必要な項目
    • item_id (string) :需要を予測する商品名や商品の ID など
    • timestamp (teimstamp):時系列
    • price (float) :時系列ごとの商品の価格(※任意で使用)

※related_time_series データセットでは、天候や曜日、気温などの項目も使用可能です。
2020-07-21_16h08_54.png

予測実施

データのインポート

コンソール画面から「Amazon Forecast」を検索します。
データセットグループの作成、時系列データセットの作成、そしてcsv データのインポートを実施します。

■データセットグループの作成
image.png

  • Dataset group name:予測をするこのデータセットグループ名を入力
  • Forecasting domain:予測に使用するドメインを選択

■時系列データセットの作成
image.png

  • dataset name:時系列データセット名を入力(S3 にインポートした csv と同じの方が分かりやすい)
  • Frequency of your data:時系列データセットの時系列(月・日・時)を選択
  • Data schema;時系列データのスキーマをJSON 形式で入力

■csv データのインポート
image.png

  • Dataset import name:インポートする csv データ名を推奨
  • Timestamp format:csv のtimestamp 形式をこの形式に合わせておくこと
  • Data location:csv データの置いてあるパス

データのトレーニング

無事にインポートが完了したら、次はインポートしたデータを用いてモデルのトレーニングを実施します。
ここでは、以下の項目を入力します。
image.png

  • Predictor name :予測モデルの名前(任意)
  • Forecast horizon:予測をしたい期間決め(期間は最大で csv データの1/3まで)
  • Forecasat frequency:csv データと同じ時系列を選択
  • Algorithm selection:利用するアルゴリズムを選択(特に希望が無ければ「Automatic」を選択)
  • Country for Holidays:休日・祝日情報を追加する場合、こちらを使用(「Japan」を検索して使用)

夜速のトレーニグの完了には、データにもよりますが大体30分以上はかかります。

予測の実施

それでは、いよいよ予測を実行してみましょう。
image.png

  • Forecast name:予測を実行して出てくる予測結果モデルの名前
  • Predictor:予測の実施にあたり利用する予測モデル(先程の学習モデルを選択すればOK)

上記の2つを入力したら、「Create forecast」を選択し、暫く待ちましょう。
これで、完了です。

Forecast lookup の使用

Amazon Forecast lookup で、Amazon Forecast のコンソール画面上で予測結果を可視化することができます。

image.png

  • Forecast:可視化したい予測結果モデルを選択
  • Start date:可視化したい最初の月日を選択(インポートした csv データの最後の時系列を選択)
  • End date:可視化したい最終の月日を選択(選択できる月日はインポートした csv データの1/3の期間まで)
  • Value:可視化したいアイテム名を選択

可視化結果は、図のように3つの予測モデルが表示されます。
image.png

  • P90 forecast:予測値の上限
  • P50 forecast:一般的に言う予測値
  • P10 forecast:予測値の下限

その他

S3 へのエクスポート

Amazon Forecast で行った予測は、 csv で S3 にエクスポートすることが可能です。
以下が手順です。

image.png
■手順
①ダッシュボードの左の「Forecasts」を選択
②作成した予測モデルを選択
③「Create forecast export」を選択

image.png
■手順
④以下の項目を入力、選択したら S3 へのエクスポートを実行

  • Export name:S3 へ送る csv の名前を決める
  • Generated forecast:S3へ送る 予測結果を選択
  • S3 forecast export location:csv を送る先の S3 のパスを入力

S3 へのエクスポートが完了するのには10数分かかります。

料金体系について

Amazon Forecast は従量課金制です。課金対象は以下の3つです。

■課金対象

  • 予測をしたいアイテムの総数×3パターンの予測モデル
  • csv データの重さ
  • モデルのトレーニングに費やした時間

おわりに

Amaozn Forecast を用いた予測は以上となります。
詳細な内容については、AWS公式を参照ください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3