Amazon-Forecast

Amazon Forecast使ってみた!

はじめに

機械学習を活用した時系列データで予測を行うことができるサービスを、ハンズオンを通じて学んだ内容をまとめて、今後の資とします。また、どなたかの手助けになれればと思います。

Amazon Personalizeについて先日投稿しましたが、簡単に違いを私見を交えて書きます。
機械学習によって今後の予測を立て、ビジネスにおいて役に立つのは両者同じではありますが、Personalizeは書いて字のごとく人が何を買うかを予測し、市場がどのように動くかを予測するのがForecastと解釈して問題ないと思います。
早速ハンズオンを開始します!
(ハンズオンを行われる方へ。無料枠を超えますのであらかじめご了承ください。)

参考サイト

AWS ハンズオン資料

使用するサービス(Amazon Forecast)

Amazon Forecast
ざっくり言うと、数値データの時系列予測ができるサービス。
例えると、デパートへの時間毎の来客数、お客様の関心事が分かる、商品の日ごとの価格、色ブランドなどのメタ情報も盛り込むことで、推論を作成することができる。要素を複数指定してグラフ化することも可能。

ハンズオン開始

S3の作成

image.png

AWSハンズオン資料で準備された1日のwebサイトへのアクセス数が記載されたCSVを使用
image.png

Forecastの作成

image.png

データセットグループを作成(ドメインはwebのトラフィック)

image.png
image.png

データセットを作成

image.png

スキーマを設定(デフォルトの型とCSVのデータがリンクしなければならない。)

今回は「timestamp」のみ、CSVデータに合わせて設定する。
コンソール上で「yyyy-mm-dd」に設定を変更する。
CSVのデータ型では「2019/1/1」となっているようですが、問題ないようです。
image.png

データセットをインポートするjob名等の決定

time zoneはデフォルト。
赤枠から作成したS3を選択する。
image.png
image.png

IAMロールを作成(Forecastからの接続のため。)

新規にロールを作成する。特定のバケットへの接続としてバケット名をコピペする。
image.png
そして画面下部のCreate roleをクリックして作成します。
image.png
出来ていますね。赤枠から操作を継続します。
image.png
image.png

データセットグループのデータで予測器を訓練するために、Train predictorを設定

1日ごとに予測して、何日先まで予測するか任意で指定する。
ここには予測するための追加キーを指定するオプションがあるようですね。
しきい値という基準に従った考え方ではなく、分位点をある比率に従って上位何%を表示したい。といった時に使用する設定などです。
image.png

精度メトリクスはデフォルトでいきます。自動的に最適なメトリクスを選択してくれるようです。自分で設定しても良いですが、今回の場合デフォルトで十分と考えました。
ザクっとまとめると、誤差を大きく見せるか小さく見せるかの設定。と理解して進めましょう。
・平均加重分位損失 (平均 wQL)
・加重絶対パーセント誤差 (WAPE)
・二乗平均平方根誤差 (RMSE)
・平均絶対パーセント誤差 (MAPE)
・平均絶対スケール誤差 (MASE)
image.png
待ち時間が長いです。実際は1時間半ほどかかったと思います。
image.png
image.png

推論を取得していきます。

作成したデータセットグループを選択し、ダッシュボードを表示させます。
「Forecast generation」をクリックして設定していきます。
任意の名前を付け、「Predictor」は先程作成したものを要素として入れ込みます。
オプションは追加せずstartします。
image.png
image.png

続いて、ダッシュボードに戻り、「query Forecast」をクリックして抽出する条件を絞って予測してみます。
image.png

画像のとおり入力し、CSVに基づいたデータがある日付から、未来の日付の部分までを予測していきます。「pv_count」というのはvalueであり、今回でいうCSVデータのitem_idです。
image.png
get Forcaastをクリックすると。
image.png
出ました。このグラフでツラツラしゃべることはできそうですがw信ぴょう性をもっと上げるには、やはり分析結果を言葉で返してほしくなりますね。。。人の手が入って丁度良い気がするので、あまり追求しすぎなくてもとは正直思います。

リソースの削除

ハンズオンが終了しましたので、リソースを削除していきます。

  1. Forecastを削除する。
    image.png

  2. Predictorsを削除する。
    image.png

  3. Datasetsを削除する。
    image.png

  4. Dataset groupsを削除する。
    image.png

  5. バケットを削除する。
    中身を空にしてから、削除します。
    image.png
    image.png

さいごに

完了ですね!大変勉強になりました。Forecastは割とつまることなく進めることができました。何度も書いてしまいますが、Personalizeとの組み合わせは絶妙な気がしています。いつどこで何が買われていて、誰が、何を買ったまで分析されたら恐ろしさを感じます。

では!

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA