【AI入門】誰でもできるAmazon Forecastを使った需要予測の始め方

 

はじめに

今回は、AIの入門者に向けたAmazon Forecast を用いて小売り業の需要予測を実施します。 概要は以下にざっくり記載いたします。 AWS 公式の Amazon Forecast の開発ガイドについては、下記リンク参照で。

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

概要

  1. Amazon ForecastはAWSのAIサービスの一つで、機械学習の知識不要で実装できる!
  2. Amazon Forecastは完全マネージド型のサービスであるため、サーバーのプロビジョニングも、 機械学習モデルの構築、トレーニング、デプロイも不要!
  3. 今回は小売りの需要予測データを使い、手順を解説していきます

Amazon Forecast とは

Amazon Forecast は、Amazon.com と同じテクノロジーをベースとし、機械学習を使って予測を立てることに特化したAWS AIサービスの一つになっております。

また、Amazon Forecast を使用する際に機械学習の経験は必要ありません。 ユーザーは手元に合うデータが最終的に需要にどう影響するのかを、時系列データのみで検証した場合よりも、より理解することができます。

Amazon Forecast は完全マネージド型のサービスであるため、以下の作業も必要ありません。 – サーバーのプロビジョニング – 機械学習モデルの構築 – トレーニング – デプロイ

また、実際に使用した分に対してのみ料金が発生します。

Amazon Forecas の特徴

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

Amazon Forecast のドメイン一覧

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

手順

このチュートリアルでは、次の手順について説明します。

①予測するデータセットの準備(csv を S3 にインポートしておく) ②Amazon Forecast に 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 データをインポート

コンソール画面から「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 を用いた予測は以上となります。 このサービスを使うことで「製品の需要計画」や「財務計画」「リソース計画」などのケースの予測精度を上げることが出来ます。

また、機会学習の知識が不要なのでAIの導入の最初のフェーズに行うのも有効化も知れませんね。

Amaozn Forecastは実際にオンラインショッピングサイトのAmazonでも使用されているサービスですので、ぜひ一度試してみてください。

この記事を書いた人

aws-recipe-user