データ資産を活用しビジネスを加速させるAI -Amazon Forecast-
はじめに
こんにちは、中村です。
re:Invent 2018にて発表がありましたAmazon Forecastがこの度一般公開いたしました。
発表時の記事はこちら
今回は、Amazon Forecastがどのようなことができるのかを触れたのちにチュートリアルを行ってみます。
ビジネスを加速させるAI -Amazon Forecast-
Amazon Forecastは、機械学習経験不要で利用できる時系列予測サービスです。
時系列予測を行う
通常、時系列予測を行う場合は、
- データの収集
- モデル作成
- アプリケーションから利用するためのAPI作成
などがあると思っています。そのため、データサイエンティスト、AIエンジニア、インフラエンジニア、アプリケーションエンジニアなど多岐に渡るロールのリソースが必要になります。
Amazon Forecastの場合は、時系列データ・関連データの作成のみでサービス統合ができます。Forecastには、1000件以上のデータポイントと時系列データがあることで最も有効に利用できます。
メリット
- Amazon.comでも利用しており典型的なモデルよりも50%以上正確な予測が可能
- 事前定義されたドメイン・レシピを活用して様々なユースケースに対応
- 簡単な操作、自動化により高速なリリースに寄与
- AWSのデータ暗号化によるデータセキュリティ
価格
- 予測1000回あたり$0.60
- トレーニングデータ1GBあたり$0.088
- トレーニング時間1時間あたり$0.238
ドメイン
ドメイン名 | 説明 |
---|---|
RETAIL | 各品目または製品の履歴 |
INVENTORY_PLANNING | 原材料の需要 |
EC2_CAPACITY | Amazon EC2 キャパシティ |
WORK_FORCE | 労働力需要 |
WEB_TRAFFIC | ウェブトラフィック |
METRICS | 収益、売上、キャッシュフローなど |
CUSTOM | カスタム要素(上記以外のドメイン) |
データセットタイプ
各ドメインごとにデータセットタイプが異なります。データは3種類があります。
データタイプ名 | 説明 |
---|---|
TARGET_TIME_SERIES | 必須のデータ、予測値、タイムスタンプ、IDが含まれる |
RELATED_TIME_SERIES | ターゲットデータに関連するデータ |
ITEM_METADATA | ターゲットデータに適用可能なメタデータ |
レシピ(アルゴリズム)
Amazon Forecastでは下記のアルゴリズムがサポートされています。自身で選択することも可能ですがAmazon Forecastが自動的に適切なレシピを選択する機能もあります。
- 自己回帰和分移動平均(ARIMA)
- DeepAR+
- 指数平滑法(ETS)
- ノンパラメトリック時系列 (NPTS)
- Prophet
チュートリアル
実際にサンプルを利用して時系列予測をしてみます。まずはデータセットをダウンロードして、Amazon S3へアップロードをします。データセットは、こちらからダウンロードできます。
アップロードが完了したら、Amazon ForecastのサービスページよりCreate dataset group
でデータセットグループを作成します。グループ名およびドメインを指定します。
続いて、Target time seriesのデータセットを作成します。Frequency of your dataは、データセット内のデータがどの時間で計測されているかを定義します。Data schemaでデータセットの構造を定義します。ここには先ほども書きましたがタイムスタンプ・予測に使う値・IDが必須になります。
次にS3からデータをインポートします。ForecastにS3(データセット)へのアクセス権限を与える必要があるためIAM Roleの箇所でCreate a new role
をクリックしてロールを作成します。
ロールが作成できたらS3バケットの指定を行って、Start Import
でインポートを開始します。
インポートが終わったら予測子をトレーニングします。DashboardのPredictor trainingのstart
をクリックしてください。Forecast horizon
は予測を実行する期間になります。Forecast frequecy
は、予測時間の幅になります。これはデータセットの計測時間と同じである必要があります。アルゴリズムはAutomatic
を選択することでForecastが最適なレシピを選択します。Train predictor
をクリックしてトレーニングを開始します。
トレーニングが完了したら予測子を作成します。作業は作成した予測子に予測名を紐付けます。
ここまで完了したらコンソールからForecastの予測を確認できます。予測子、予測したいIDと日付を指定してGet forecast
をクリックしてみてください。
といった形で実行結果を確認することができました。P90などのラベルは、指定された日時に実際の値が記載された値を下回る信頼レベルになります。
まとめ
Amazon Forecastは、安く・早く・美味い(精度が出る)時系列予測サービスです。またチュートリアルで示した通り簡単にAPIエンドポイントを構築できますので、まずはお手持ちのデータでトライアルしてみることでパワーを実感できると思います。