LoginSignup
14
11

More than 3 years have passed since last update.

Amazon Forecast を使ってお手軽に時系列予測する(GUI編)

Last updated at Posted at 2019-08-23

はじめに

Amazon Forecast が利用できるようになったので、使用感を確かめたいと思います。まずは、細かいことは気にせず、通して使うことを目指します。

結論

違和感のない、良い感じに予測できました。
AirPassengers_AutoML.png
オリジナルデータは、乗法的な季節性がみられます。例えば、源系列に SARIMA を使うと、季節成分がきれいに分離できず、予測に違和感が出ます。予測モデルを自動選択にしましたが、Amazon Forecast の中で上手いことやってくれてるようです。

Amazon Forecast とは?

aws のサービスのひとつです。
Amazon によると、

Amazon Forecast は、機械学習を使用して精度の高い予測を行う完全マネージド型のサービスです。

とのことでです。時系列データに対して、お手軽に精度の高い予測結果を得ることができるようです。まあ、どれだけの精度が出せるのかは、検証しないとわかりません。しかしながら、「完全マネージド型のサービス」は、非常に有用だと感じます。

対応データ形式

対応しているデータ形式です。

データの種類

  • アイテム毎の時系列データ(週ごとの製品ごとの販売個数など)
  • アイテムの属性情報(価格、重さ、製品個別の情報など)
  • 時系列の属性情報(休日、特売日など)

時間間隔

「分、時、日、月、年」の時間間隔に対応しています。

データフォーマット

データフォーマットは、CSV です。
予測対象データで、CUSTOM ドメインのデフォルトスキーマを使う場合、以下のカラムが必要です。

  • item_id (文字列:製品名等)
  • timestamp (タイムスタンプ)
  • target_value (浮動小数点)

予測品目が一つの場合、item_id カラムには全て同じ値を入れます。

何をしましょうか?

AirPassengers という、1949年から1960年までの飛行機の月次乗客数データを利用します。

データの準備

item_id,timestamp,target_value
passengers,1949-01-01 00:00:00,112
passengers,1949-02-01 00:00:00,118
passengers,1949-03-01 00:00:00,132
passengers,1949-04-01 00:00:00,129
passengers,1949-05-01 00:00:00,121
  • aws console にログインします

  • S3 にバケットを作ります

  • バケットにファイルをアップロードします

Amazon Forecast を使う

  • サービスサイトにアクセスします
    https://ap-northeast-1.console.aws.amazon.com/forecast/home?region=ap-northeast-1#landing

  • dataset group を作り、target 時系列データをインポートします

    • dataset group name を指定
    • ドメインを指定 → CUSTOM を指定
    • dataset name を指定
    • データの周期を指定 → Month を指定
    • dataset import name を指定
    • Timestamp format は変更しない
    • IAM Role を作成
    • アクセスする S3 Bucket 名を指定
    • S3 に保存したデータのパスをコピー
    • Data location へデータのパスを指定
    • Start import をクリック → ちょっと待つ
  • 学習する

    • Dashboard で train predictor の Start をクリック
    • Predictor name を指定
    • Forecast horizen を指定 → 48 を指定(何期先まで予測するか?最大48らしい)
    • Forecast frequency で予測の周期を指定 → month を指定
    • Algorithm selection を指定 → AutoML を指定
    • Train predict ボタンで学習開始 → 30分ほど待つ
  • 予測する

    • Dashboard で Forecast generation の Start をクリック
    • Forecat name を指定
    • Predictor を指定
    • Create a forecast をクリック → しばらく待つ
  • 予測結果を確認する

    • Dashboard で Lookup forecast ボタンをクリック
    • forecast に Forecast name を指定
    • Start date に予測開始日を指定 → 1957/01/01
    • End date に予測終了日を指定 → 1964/12/01
    • Value に予測対象 item_id を指定 → passengers を指定
    • Get Forecast ボタンをクリック
    • 下にスクロールし予測結果を確認
  • 予測結果データを出力する

    • Dashboard の左側メニューで forecast をクリックする
    • リストの Forecast name をクリック
    • Create forecast export をクリック
    • Export name を指定
    • Generated forecast を指定
    • IAM Role を指定
    • S3 forecast export location を指定
    • Create forecast export をクリック
    • Exports 一覧で Status が Active になるまで待つ
  • 予測結果データを取得する

    • 出力先の S3 バケットを開く
    • ファイル part-*****.csv をダウンロードする
    • Excel 等でファイルを開く

スクリーンショットをいくつか

予測結果プレビュー

forecast_dashboard.png

予測結果

dashboard.png

まとめ

厳密にいうと色々と検証する必要はありますが、ちゃんと予測できたようです。他の時系列予測モデルでの結果とも比較したいところですが。

制限事項がありました。48期先までしか予測できないようです。月次データでは、4年先までしか予測できません。
他にも色々制限が。
本格的にシステムに組み込むには、CLIでゴリゴリ使うのが良さそうです。

14
11
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
14
11