LoginSignup
7
8

More than 3 years have passed since last update.

【初心者】Amazon Forecast を使ってみる

Posted at

目的

  • 仕事に直結していないが、時系列データの分析に興味があったため、基本動作を確認することにした。

Amazon Forecast とは(自分の理解)

  • 過去の時系列データ、および関連データを入力すると、それらのデータを元に未来予測を行ってくれるサービス。

やったこと

  • 気象庁のオープンデータから、過去の東京地方の日次平均気温データを取得。
  • 4年分の過去データ(2015/9/1~2019/8/31)をAmazon Forecastに入力。2019/9/1~2019/9/30の予測を出力させる。
  • 2019/9/1~9/30の値について、Forecastが出力した予測と、実際のデータを比較し、予測の正確性を確認する。

構成図

forecast01.png

作業手順

データの準備

  • 気象庁のデータ公開サイトから、過去の東京の平均気温データをダウンロードする。
  • 整形前のデータ(.xls)は以下のフォーマットになる。

forecast02.png

  • forecastで処理できるフォーマットに整形する。不要な列を削除し、日付のフォーマットを修正する。日付はExcelの機能で「yyyy-mm-dd hh:mm:ss」(「:」は実際には半角)を指定して整形する。

forecast03.png

  • 4年分のデータをグラフにすると以下のようになる。30℃(真夏)~5℃(真冬)の間を推移する。

forecast04.png

Forecastでの処理

処理プロセス

大きく分けて以下の3つの処理を実施する。

  • Dataset Group :入力データの作成

    • S3にcsvデータをアップロード。
    • forecastにて、入力データとしてそのcsvを指定して読み込ませる。
  • Train predictor :学習モデルの作成

    • 各種パラメータを入力し学習処理を行う。
      • Forecast Frequency(データの頻度): 今回は1日(日次データなので)
      • Forecast Horizon(何周期予測する): 100(約3か月分の未来を予測)
  • Generate forecasts :予測の作成

    • 実際に予測を作成する。

処理時間

上記のそれぞれのプロセスでの所要時間は以下の通り。今回のデータ量は約1500行(365日*4年分)だが、それなりに時間がかかる。

  • Dataset Groupの作成(データのimport):約4分
  • Train predictor(学習モデルの作成):約90分
  • Generate Forecasts(予測の作成):約90分

予測の出力

2019/7,8月分(入力データ)と、2019/9月分(予測データ)を表示。9月はだんだん寒くなっていくので、正しい傾向での予測はできている。
forecast05.png

予測データの検証

2019/9月分について、forecastが予測したデータと、気象庁から取得した実データを比較する。大きく外してはなさそうだが正確かどうかは素人では判断不能。

forecast06.png

所感

  • 基本的な手順としては簡単なので、サーバの負荷の予測とか、実業務に関わるところに活かせないかを考えてみたい。
  • 学習のアルゴリズムとして、ARIMA, Deep_AR_Plus, ETS, NPTS, Prophetが選択可能で、今回は自動選択にしたところ「Deep_AR_Plus」が使用されていた。公式ドキュメント: Amazon Forecast アルゴリズムを選択するにそれぞれの解説があるが、さっぱり分からないため、理解して使おうとするとかなり奥深そう。

参考

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8