グループ_209

【機械学習の経験不要】Amazon Forecastで時系列予測をしてみた

本日、Amazonより正式リリースされたAmazon Forecast。過去の時系列データを与えるだけで機械学習による時系列予測をしてくれるフルマネージド型サービスです。

過去の売上や利益、製品の価格といった予測情報を使っての「製品製造計画」や、システム屋目線だとこれまでのトラフィック量やリソース状況を予測情報に使っての「リソース計画」など様々なシーンで利用できるのではないでしょうか。

用意するのは過去のデータと、予測に影響を与える可能性がある追加データだけ、機械学習の知識なしで Amazon社のテクノロジーに基づいた正確な時系列予測ができるなんて素晴らしいですよね🎉 

今回はサンプルデータを用いて、どれだけ簡単に時系列予測ができるか試してみたいと思います。

1、まずは予測情報の準備

こちらの機械学習用データセット集から月別車売上数を拝借しました。

forecastにデータを読み込ませるためには指定のCSV形式にする必要があります。今回は任意の時系列データ形式であるcustomドメインを使うことにします。customドメインの必須項目はitem_id、timestamp、target_valueなので、以下のようにCSVを形成しました。

<加工後のCSVファイルの中身>
item_id,timestamp,demand
car_sales,1960-01-01 00:00:00,6550
car_sales,1960-02-01 00:00:00,8728
car_sales,1960-03-01 00:00:00,12026
car_sales,1960-04-01 00:00:00,14395
car_sales,1960-05-01 00:00:00,14587
・・・

以下にデータセットドメインの種類、必須項目が記載されているので、forecastを使う時はこちらを参考にデータセットを準備しましょう👍小売の需要予測やAmazon EC2キャパシティの予測、ウェブトラフィックの需要予測など代表的なものはテンプレートとして用意されていました。

2、S3へ格納

forecastへはS3バケット経由でcsvを読み込ませるため、上で用意したcsvをS3バケットに格納しておきます。

3、forecastにデータインポート&機械学習

ここからいよいよforecastの操作です。まずはデータセットグループの作成です。う上で述べたとおり、Forecasting domainには""custom"を設定。

Nextを押下し、データセットの詳細設定をしていきますが、以下項目をGUIでポチポチするだけ。3分もあれば終わります。割愛。

・Timestamp format:yyyy-MM-dd HH:mm:ss
・Data frequency:Month
・Location:S3 bucket path

この状態になったら準備完了。

次はAmazon社の力を借りて学習モデルを作成。ここもとても簡単。予測する周期とアルゴリズムを選ぶだけ。

Train predict ボタンで学習開始。30分ほどかかるので気長に待ちましょう☕️

4、forecastで予測結果を確認

予測開始日や終了日、予測対象アイテムを選択して予測結果を確認してみましょう。予測結果はこんな感じ。それっぽい。

結果はS3へデータ出力もできるので、ローカルに保存することも可能です。

最後に

この予測結果がどれほど正確なのか、追加情報を使ったらどう変化するのか、他の学習モデルと比較してどうなのかなど気になることはありますが、機械学習の知識なく時系列予測のデータを手に入れられるのは非常に魅力的です。

みなさん日々の業務で計画を立てることあるかと思いますが、大事なのは予測データを作ることではなく、予測データを使っての分析&対策立案です。「予測データはコンピュータに任せ、人間はより高度な業務に専念する」、そんな未来を期待させてくれるサービスforecastを業務でも使ってみたいと思います。

参考


Product Owner at docomo / プライベートでもC向けWebサービス作ってます / 元 #入江開発室 / #nyan / SketchやXd、Figmaなどのデザインアセットのシェアサービス #collin