はじめに
今回は、AIの入門者に向けたAmazon Forecast を用いて小売り業の需要予測を実施します。 概要は以下にざっくり記載いたします。 AWS 公式の Amazon Forecast の開発ガイドについては、下記リンク参照で。
概要
- Amazon ForecastはAWSのAIサービスの一つで、機械学習の知識不要で実装できる!
- Amazon Forecastは完全マネージド型のサービスであるため、サーバーのプロビジョニングも、 機械学習モデルの構築、トレーニング、デプロイも不要!
- 今回は小売りの需要予測データを使い、手順を解説していきます
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):商品の販売先店舗や地域名など(※任意で使用)
- related_time_series データセットに必要な項目
- item_id (string) :需要を予測する商品名や商品の ID など
- timestamp (teimstamp):時系列
- price (float) :時系列ごとの商品の価格(※任意で使用)
※related_time_series データセットでは、天候や曜日、気温などの項目も使用可能です。
②Amazon Forecast に csv データをインポート
コンソール画面から「Amazon Forecast」を検索します。 データセットグループの作成、時系列データセットの作成、そしてcsv データのインポートを実施します。
■データセットグループの作成
- Dataset group name:予測をするこのデータセットグループ名を入力
- Forecasting domain:予測に使用するドメインを選択
■時系列データセットの作成
- dataset name:時系列データセット名を入力(S3 にインポートした csv と同じの方が分かりやすい)
- Frequency of your data:時系列データセットの時系列(月・日・時)を選択
- Data schema;時系列データのスキーマをJSON 形式で入力
■csv データのインポート
- Dataset import name:インポートする csv データ名を推奨
- Timestamp format:csv のtimestamp 形式をこの形式に合わせておくこと
- Data location:csv データの置いてあるパス
③トレーニングモデルの作成
無事にインポートが完了したら、次はインポートしたデータを用いてモデルのトレーニングを実施します。 ここでは、以下の項目を入力します。
- Predictor name :予測モデルの名前(任意)
- Forecast horizon:予測をしたい期間決め(期間は最大で csv データの1/3まで)
- Forecasat frequency:csv データと同じ時系列を選択
- Algorithm selection:利用するアルゴリズムを選択(特に希望が無ければ「Automatic」を選択)
- Country for Holidays:休日・祝日情報を追加する場合、こちらを使用(「Japan」を検索して使用)
夜速のトレーニグの完了には、データにもよりますが大体30分以上はかかります。
④予測の実施
それでは、いよいよ予測を実行してみましょう。
- Forecast name:予測を実行して出てくる予測結果モデルの名前
- Predictor:予測の実施にあたり利用する予測モデル(先程の学習モデルを選択すればOK)
上記の2つを入力したら、「Create forecast」を選択し、暫く待ちましょう。 これで、完了です。
Forecast lookup の使用
Amazon Forecast lookup で、Amazon Forecast のコンソール画面上で予測結果を可視化することができます。
- Forecast:可視化したい予測結果モデルを選択
- Start date:可視化したい最初の月日を選択(インポートした csv データの最後の時系列を選択)
- End date:可視化したい最終の月日を選択(選択できる月日はインポートした csv データの1/3の期間まで)
- Value:可視化したいアイテム名を選択
可視化結果は、図のように3つの予測モデルが表示されます。
- P90 forecast:予測値の上限
- P50 forecast:一般的に言う予測値
- P10 forecast:予測値の下限
その他
S3 へのエクスポート
Amazon Forecast で行った予測は、 csv で S3 にエクスポートすることが可能です。 以下が手順です。
■手順 ①ダッシュボードの左の「Forecasts」を選択 ②作成した予測モデルを選択 ③「Create forecast export」を選択
■手順 ④以下の項目を入力、選択したら 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でも使用されているサービスですので、ぜひ一度試してみてください。