##はじめに
今回は、Amazon Forecast を用いた予測を実施します。手順は以下となります。
AWS 公式の 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):商品の販売先店舗や地域名など(※任意で使用)
- related_time_series データセットに必要な項目
- item_id (string) :需要を予測する商品名や商品の ID など
- timestamp (teimstamp):時系列
- price (float) :時系列ごとの商品の価格(※任意で使用)
※related_time_series データセットでは、天候や曜日、気温などの項目も使用可能です。
##予測実施
###データのインポート
コンソール画面から「Amazon Forecast」を検索します。
データセットグループの作成、時系列データセットの作成、そしてcsv データのインポートを実施します。
- Dataset group name:予測をするこのデータセットグループ名を入力
- Forecasting domain:予測に使用するドメインを選択
- dataset name:時系列データセット名を入力(S3 にインポートした csv と同じの方が分かりやすい)
- Frequency of your data:時系列データセットの時系列(月・日・時)を選択
- Data schema;時系列データのスキーマをJSON 形式で入力
- 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:可視化したいアイテム名を選択
- 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 を用いた予測は以上となります。
詳細な内容については、AWS公式を参照ください。