AWS Forecastで手軽に時系列ML 第1回

こんにちは。かっぺいです。
AWSのForecastを使う機会が少しあったので、備忘メモとして記載します。

AWS Forecastとは

機械学習(ML)を、アルゴリズムやプログラムの知識を必要なく利用できるようにした、AWSのサービスです。
時系列データを予測する機械学習モデルとなりますので、売上予測や需給予測などのビジネスに必要となりそうな機能を実現できる内容となっています。

AWSハンズオンでの紹介

日本の企業の利用事例として、とある楽器販売メーカーのことを紹介していましたが、社内SEがMLの知識なくForecastを使って売上(需給)予測を実現したというようなことを言っていました。
そのため、あまり専門知識なくMLを活用することができるのだろうと思い、試験的に使ってみようかなということが、使い始めの動機でした。

Forecastを使う上で必要なモノ

Forecastを使うためには、データの格納先としてS3を使いますので、S3バケットだけ作成すれば使用することができます。
そのため、よくあるようなEC2インスタンスを立ち上げて、Pythonを使ってプログラムを組んで〜などのインフラクチャやプログラムの知識や環境は必要ありません。

学習用に取り込むデータは、CSV形式で時系列のデータとなっていれば良く、制限は日付の書式とフィールドの数、これさえ守ればとりあえず使うことは可能です。

予測アルゴリズム

Forecastのデベロッパーガイドを見ると、6種類のアルゴリズムから選ぶほか、AutoMLというForecastが最適なモデルを組み合わせて予測をする方法があります。

デベロッパーガイドでは自分で選べるようになっていますが、マネージメントコンソールからForecastを利用する場合、AutoML一択となっており任意のアルゴリズムを選ぶことはできません。

用意するデータ

Forecastでは、時系列データセットと関連データセット、メタデータの3種類のデータセットを使うことができます。

時系列データセットのフィールドは以下の項目を入れることができます。(一般的な需給や売上予測の場合)

  • 時系列データ
  • アイテムID
  • ターゲットデータ
  • ディメンションID(最大10個)

関連データセットには以下の項目を入れることができます。

  • 時系列データ
  • アイテムID、ディメンションID
    • 時系列データセットと同一のものを入れる必要がある
  • 関連データ(最大13個)

メタデータ

  • アイテムID
    • 時系列データセット・関連データセットど同一のもの
  • メタデータ
    • 関連性がありそうなデータ、例えば、ブランドや色など

最後に

これだけを準備すれば、機械学習を使った時系列予測が可能となります。
次回は、実際に使ってみて注意点を紹介していきたいと思います。