目次
はじめに
機械学習を活用した時系列データで予測を行うことができるサービスを、ハンズオンを通じて学んだ内容をまとめて、今後の資とします。また、どなたかの手助けになれればと思います。
Amazon Personalizeについて先日投稿しましたが、簡単に違いを私見を交えて書きます。
機械学習によって今後の予測を立て、ビジネスにおいて役に立つのは両者同じではありますが、Personalizeは書いて字のごとく人が何を買うかを予測し、市場がどのように動くかを予測するのがForecastと解釈して問題ないと思います。
早速ハンズオンを開始します!
(ハンズオンを行われる方へ。無料枠を超えますのであらかじめご了承ください。)
参考サイト
使用するサービス(Amazon Forecast)
Amazon Forecast
ざっくり言うと、数値データの時系列予測ができるサービス。
例えると、デパートへの時間毎の来客数、お客様の関心事が分かる、商品の日ごとの価格、色ブランドなどのメタ情報も盛り込むことで、推論を作成することができる。要素を複数指定してグラフ化することも可能。
ハンズオン開始
S3の作成
AWSハンズオン資料で準備された1日のwebサイトへのアクセス数が記載されたCSVを使用
Forecastの作成
データセットグループを作成(ドメインはwebのトラフィック)
データセットを作成
スキーマを設定(デフォルトの型とCSVのデータがリンクしなければならない。)
今回は「timestamp」のみ、CSVデータに合わせて設定する。
コンソール上で「yyyy-mm-dd」に設定を変更する。
CSVのデータ型では「2019/1/1」となっているようですが、問題ないようです。
データセットをインポートするjob名等の決定
time zoneはデフォルト。
赤枠から作成したS3を選択する。
IAMロールを作成(Forecastからの接続のため。)
新規にロールを作成する。特定のバケットへの接続としてバケット名をコピペする。
そして画面下部のCreate roleをクリックして作成します。
出来ていますね。赤枠から操作を継続します。
データセットグループのデータで予測器を訓練するために、Train predictorを設定
1日ごとに予測して、何日先まで予測するか任意で指定する。
ここには予測するための追加キーを指定するオプションがあるようですね。
しきい値という基準に従った考え方ではなく、分位点をある比率に従って上位何%を表示したい。といった時に使用する設定などです。
精度メトリクスはデフォルトでいきます。自動的に最適なメトリクスを選択してくれるようです。自分で設定しても良いですが、今回の場合デフォルトで十分と考えました。
ザクっとまとめると、誤差を大きく見せるか小さく見せるかの設定。と理解して進めましょう。
・平均加重分位損失 (平均 wQL)
・加重絶対パーセント誤差 (WAPE)
・二乗平均平方根誤差 (RMSE)
・平均絶対パーセント誤差 (MAPE)
・平均絶対スケール誤差 (MASE)
待ち時間が長いです。実際は1時間半ほどかかったと思います。
推論を取得していきます。
作成したデータセットグループを選択し、ダッシュボードを表示させます。
「Forecast generation」をクリックして設定していきます。
任意の名前を付け、「Predictor」は先程作成したものを要素として入れ込みます。
オプションは追加せずstartします。
続いて、ダッシュボードに戻り、「query Forecast」をクリックして抽出する条件を絞って予測してみます。
画像のとおり入力し、CSVに基づいたデータがある日付から、未来の日付の部分までを予測していきます。「pv_count」というのはvalueであり、今回でいうCSVデータのitem_idです。
get Forcaastをクリックすると。
出ました。このグラフでツラツラしゃべることはできそうですがw信ぴょう性をもっと上げるには、やはり分析結果を言葉で返してほしくなりますね。。。人の手が入って丁度良い気がするので、あまり追求しすぎなくてもとは正直思います。
リソースの削除
ハンズオンが終了しましたので、リソースを削除していきます。
-
Forecastを削除する。
-
Predictorsを削除する。
-
Datasetsを削除する。
-
Dataset groupsを削除する。
-
バケットを削除する。
中身を空にしてから、削除します。
さいごに
完了ですね!大変勉強になりました。Forecastは割とつまることなく進めることができました。何度も書いてしまいますが、Personalizeとの組み合わせは絶妙な気がしています。いつどこで何が買われていて、誰が、何を買ったまで分析されたら恐ろしさを感じます。
では!
1つずつ誠実に取り組み、技術を身に着けて発信も併せて行っていきます!