はじめに
BigQuery MLのAI.FORECAST関数を使うと、TimesFMという予測モデルを利用して、時系列データを簡単に予測できます。 TimesFMはGoogle Researchが開発したもので、大量のデータで学習されているため、自分でモデルをトレーニングしなくても、高い精度の予測が可能です。この記事では、AI.FORECAST関数の概要、使い方、メリット・デメリット、活用事例について解説します。
TimesFMモデルとは?
TimesFMは、Google Researchが開発した時系列予測モデルです。数十億もの時点を持つ多くの実世界データセットで事前に学習されており、さまざまなドメインの新しい予測データセットに適用できます。このモデルを使用することで、モデルの管理が不要になり、予測結果をARIMAなどの従来の手法と比較できます。
AI.FORECAST関数の使い方
AI.FORECAST関数は、BigQueryのSQLクエリの中で使用します。予測したい時系列データと、予測期間(horizon)、信頼水準(confidence_level)などのパラメータを指定するだけで、簡単に予測を実行できます。
SELECT
forecast_timestamp,
forecast_value,
prediction_interval_lower_bound,
prediction_interval_upper_bound
FROM
AI.FORECAST(
(
SELECT
timestamp_column,
data_column
FROM
your_table
),
horizon => 720,
confidence_level => 0.99,
timestamp_col => 'timestamp_column',
data_col => 'data_column'
)
上記の例では、your_table
というテーブルからtimestamp_column
とdata_column
を読み込み、720時間先まで99%の信頼水準で予測しています。
パラメータの説明
- horizon: 予測期間。予測する未来の期間の長さを指定します。上記の例では、720時間先まで予測しています。
- confidence_level: 信頼水準。予測結果の信頼度を表します。上記の例では、99%の信頼水準で予測しています。
- timestamp_col: タイムスタンプ列。時系列データのタイムスタンプが格納されている列名を指定します。
- data_col: データ列。予測したいデータが格納されている列名を指定します。
AI.FORECAST関数のメリット
- ローコードで予測: 複雑な機械学習の知識がなくても、SQLだけで簡単に予測を実行できます。
- 高い予測精度: Google Researchが開発したTimesFMモデルを使用しているため、高い精度の予測が期待できます。
- スケーラビリティ: BigQueryの強力なインフラ上で動作するため、大量のデータでも高速に処理できます。
- モデル管理不要: モデルのトレーニングやメンテナンスが不要なため、運用コストを削減できます。
AI.FORECAST関数のデメリット
- プレGAであること: AI.FORECAST関数は、まだプレGA(一般提供前)の機能であるため、変更が入る可能性があります。また、利用するためには特定の条件を満たす必要がある
- TimesFMモデルのチューニングオプションが限定的: TimesFMモデルのパラメータを細かくチューニングすることはできません。
- 多変量予測には対応していない: 複数の変数を考慮した予測(多変量予測)には対応していません。
AI.FORECAST関数の活用事例
- Webアクセス数の予測: 過去のWebアクセス数のデータから、将来のアクセス数を予測できます。
- 売上予測: 過去の売上データから、将来の売上を予測できます。店舗ごとの予測も可能です。
- 需要予測: 過去の需要データから、将来の需要を予測できます。
まとめ
BigQueryのAI.FORECAST関数は、時系列予測を簡単かつ高精度に実現できる強力なツールです。ぜひ活用して、ビジネスの意思決定に役立ててください。
注意点
- AI.FORECAST関数は、プレGA(一般提供前)の機能であるため、利用規約などをよくご確認ください。
- より詳細な情報や最新の情報は、公式ドキュメントをご確認ください。
- 今回は公式ドキュメントへのアクセスができなかったため、一般的な情報に基づいた記事となっています。
参考:Google Cloud公式 AI.FORECAST関数の使い方
いかがでしたでしょうか?このブログ記事が、BigQueryのAI.FORECAST関数を理解し、活用するための一助となれば幸いです。
コメント