流れ
データセット作成
↓
予測子をトレーニング
↓
予測 生成
データセット作成
データセットドメイン
- RETAIL ドメイン – 小売の需要予測
- INVENTORY_PLANNING ドメイン – サプライチェーンとインベントリの計画
- EC2 CAPACITY ドメイン – Amazon Elastic Compute Cloud (Amazon EC2) キャパシティの予測
- WORK_FORCE ドメイン – 従業員の計画
- WEB_TRAFFIC ドメイン – 今後のウェブトラフィックの見積もり
- METRICS ドメイン – 収益およびキャッシュフローなどの予測メトリクス
- CUSTOM ドメイン – その他すべての時系列予測のタイプ
販売量は RETAIL ドメイン かな
データセットタイプ
TARGET_TIME_SERIES データセットタイプ
予測するフィールド(今回は販売量)が含まれているデータがこれ。
item_id (文字列) – 需要を予測する商品または製品の固有の ID。
timestamp (タイムスタンプ)
demand (float) – タイムスタンプ時の商品の販売数。これは、Amazon Forecast が予測を生成するターゲットフィールドでもあります。
↑今回の販売量予測はこれのみ使ってみる
RELATED_TIME_SERIES データセットタイプ
データが時系列でも、予測するフィールド(今回は販売量)が含まれていないデータ
↑商品の販売量予測では、なし。
ITEM_METADATA データセットタイプ
時系列ではないデータ
e.g. 商品のブランド、カラー、何らかのカテゴリなど
↑もらったデータにはなし
データセット作成
2012/12~2017/2のデータから2017/6の予測をしたい
データは↓こんな感じ ※demandは平米
item_id,timestamp,demand,
商品ID_1,2012-12-03,560.087,
商品ID_2,2012-12-03,117.826,
商品ID_3,2012-12-03,190.522,
データセットGroupの中に、データセットをつくる
Automatic dataset import jobs→S3のデータを更新したときに自動で更新してくれるっぽいけど、必要ないので、一旦off
- データの間隔 → 1日ごと
- timestampのフォーマットは 2012-12-03
- データはカンマ区切り
- データにはヘッダーがあります。
item_id,timestamp,demand
- S3の置き場所
s3://xxxxx/yyyyyyy.csv
予測子をトレーニング
はじめに
予測子を予測するには、インポートしたターゲット時系列データにレシピを使用します。手動で特定のレシピを選択するか、[AutoML] を選択して Amazon Forecast にデータを処理させてデータセットグループに最適なレシピを選択するかを選択できます。
レシピ一覧
- 自己回帰和分移動平均 (ARIMA) のレシピ
- DeepAR+ のレシピ*
- 指数平滑法 (ETS) のレシピ
- 混合密度ネットワーク (MDN) のレシピ
- マルチクォンタイルリカレントニューラルネットワーク (MQRNN) のレシピ
- ノンパラメトリック時系列 (NPTS) のレシピ
- Prophet のレシピ
- スプライン変位予測 (SQF) のレシピ
勉強しないとわからないので、とりあえずAutoMLを使ってみる
予測子をトレーニングする
- トレーニングに名前をつける
Forecast horizon
データセットのデータ入力頻度を掛け算して、予測したい期間を設定する
今回はdailyのデータから1ヶ月間の予測をしたいので、30??←失敗作
2017/6を予測したいので
[与えたデータ] : ~2017/2
[欲しい予測の期間] : 2017/6
2017/3, 2017/4, 2017/5, 2017/6の4ヶ月分(130くらい?)に設定してみるレシピは一旦AutoMLに設定
自動で再トレーニングは不要なので、off(そもそもデータの自動更新をしないので、必要ない)
※ トレーニング作成の間に読む!
Amazon Forecast 予測子のメトリクス
予測 生成
トレーニングが終了したので、deployする
予測を見る
- 予測を見たい商品のID
- Predictor - さっき作ったPredictor
- version - ひとつしかないので、指定しない
- 予測の開始日、終了日を設定
- Dailyのデータで予測したので、Dailyの予測を作る(当然ながら、与えたデータより大きい間隔での指定が必要)
----- 失敗作 -----
Bad requestとのこと。
Start dateとEnd dateの間隔を広げてみる
2017年3月分しか出てこない...(予測したいのは2017年6月)
Demandで与えたデータが 2012/12~2017/02 だから2017/2月末に隣接した予測しかしてくれない??
予測子をトレーニングする に戻って、作り直してみる
成功\(^o^)/
データをoutputしたいけれど、csv downloadの機能が見つからないので、コンソール画面からはできない...?
→AWS CLIの設定をする
※2019年6月時点のメモ