Amazon Forecastを使う際に注意すべき制限事項あれこれ

DA事業本部の貞松です。Forecast楽しいです。

今回はForecastを実際に使用する際に注意が必要な制限事項についてのあれこれをまとめます。

上限的な制限事項

Forecastに関する各種上限については、下記のページにまとめられています。

Amazon Forecast開発者ガイド: Amazon Forecastの制限

データセットグループに含まれる3種類の各データセット(必須1つ、任意2つ)に対する列の最大数(追加の予測ディメンションが最大10列)や作成できる予測の最大数が10など、比較的小さな値で制限されているので、実際に使用する際には注意が必要です。

データインポートや予測子の作成など、各種ジョブの最大同時実行数が3というのも実用を考えるとちょっと厳しいポイントかもしれません。

データセットのインポートに関する制限事項

データセットに対するデータのインポート時にエラーが発生した場合、まずは以下のガイドラインを参照しましょう。

Amazon Forecast開発者ガイド: Amazon Forecastのデータセットのインポートガイドライン

このガイドラインの中で、制限事項に関するトピックとしては以下が挙げられます。

タイムスタンプ形式

Forecastのデータセットでタイムスタンプ列として使用できるフォーマットは以下の2種類のみです。

  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd

/ (スラッシュ) 区切りは使用できません。
また、ロケールによって異なる 年月日の順序 についても入れ替え不可です。
対応フォーマットが増えてくれると前処理も楽になるので、この辺りはアップデートに期待です。

ファイル形式と区切り記号

現状のForecastでデータセットにインポートできるファイル形式はCSV形式のみとなっております。
もちろん区切り文字は , (カンマ) のみ使用可能です。
(*.csvという名のタブ区切りやスペース区切りのファイルは使用できません)

ファイル名

ファイル名は英数字のファイル名をサポートしています。日本語ファイル名は使用できません。
また、記号について _ (アンダースコア) は使用できましたが - (ハイフン) は使用できませんでした。

予約フィールド名

Forecastのデータセットには予約フィールド名が存在し、これらの名称はデータセットのスキーマ定義でAttributeNameとして使用することはできません。

具体的な予約フィールド名は下記のページを参照してください。

Amazon Forecast開発者ガイド: 予約フィールド名

番外:日本語の値を持つ列項目について

Amazon Forecastでは、日本語の文字列を値としてもつ列項目が含まれるデータをデータセットとして扱うことができました。

  • 日本語の値をもつ列項目を item_id に設定してデータインポート
  • 予測子、予測を作成
  • Forecast lookupでForecast keyのvalueに日本語の値を入力して実行

これで問題なく予測の結果を可視化できました。
注意点として、インポートするCSVファイルの文字コードがちゃんとUTF-8になっていることを確認しましょう (ファイルの文字コードがSJISになってるとエラーが発生します)

まとめ

今回はForecastの制限事項についてまとめました。
実問題に適用する際に「できると思ったら実はできなかった」なんてことがないように事前に確認しておきましょう。