AI BigQuery DWH データ活用

BigQueryによる機械学習のはじめ方 | モデル作成から予測までSQLで時系列データ分析【活用事例付き】

はじめに

これまで、業務アプリケーションの開発を経験後、データ活用の支援や分析基盤構築の導入から構築までサポートして参りました。

  • 東証プライム市場への上場企業から社員数人の中小規模までのシステム開発に従事。
  • 個人事業主として2年で6社のデータ分析現場で支援。

データ活用現場では、BigQuery ML(以下、BQML)の実務経験もあり、機械学習がうまくフィットしているケースとそうでないケースを見てきました。

今回は、機械学習がどのようなケースで効果的で、どのケースで効果的でないのかを整理しました。

AIや機械学習を導入しようとする際、

  • 「技術的に難しくてどう始めれば良いのか分からない」と感じる方
  • 「どのケースで効果的なのか迷っている」と感じている方
  • もっと手軽に機械学習を試してみたいと思っている方

は多いのではないでしょうか?

BigQuery ML(BQML)とは?

SQLクエリを使用して機械学習モデルの作成と実行を可能にするツールです。

この技術の特徴は、SQL実務者が従来のSQLツールやスキルを活用して簡単に機械学習モデルを構築できる点にあります。また、データの移動が不要であるため、開発の速度も向上します。

BigQuery MLは、以下のツールをサポートしています。

  • Google Cloud Console
  • bqコマンドラインツール
  • BigQuery REST API
  • Jupyterノートブックなどの外部ツール

また、現在(2023年8月時点)内部的にサポートされているモデルは以下のとおりです。

  • 線形回帰(LINEAR_REG)
  • ロジスティック回帰(LOGISTIC_REG)
  • K平均法クラスタリング(KMEANS)
  • 行列分割(MATRIX_FACTORIZATION)
  • 主成分分析(PCA)
  • 時系列(ARIAMA_PLUS)

多くの組織では、大量のデータを扱う機械学習には高度なプログラミングスキルが求められるため、データサイエンティストなど一部の専門家だけがそれを実施しています。

しかし、BigQuery MLの登場により、プログラミングや機械学習に習熟していないデータアナリストも、既存のSQLスキルを活用して機械学習モデルを容易に構築・評価できるようになりました。

このため、時間のかかるデータサイエンスチームの介入を待つことなく、迅速に結果を得ることが可能になっています。

活用事例: BigQuery ML(BQML)の利用

今回は、[google_analytics_sample.ga_sessions サンプル テーブル](https://console.cloud.google.com/bigquery?p=bigquery-public-data&%3Bd=google_analytics_sample&%3Bt=ga_sessions_20170801&%3Bpage=table&hl=ja&_ga=2.31185148.2113297693.1691939065-1600414145.1608871836)を使用して時系列モデルを作成し、1 つの時系列予測を行う方法について説明します。

こちらの流れに沿っていますが、大枠を理解いただくためにも要約して説明します。

詳細な部分を理解されたい方は、上記ドキュメントをご覧ください。

1. 時系列モデルを作成

[CREATE MODEL]) 句で bqml_tutorial.ga_arima_model という名前のモデルを作成してトレーニングします。

#standardSQL
CREATE OR REPLACE MODEL bqml_tutorial.ga_arima_model
OPTIONS
  (model_type = 'ARIMA_PLUS',
   time_series_timestamp_col = 'parsed_date',
   time_series_data_col = 'total_visits',
   auto_arima = TRUE,
   data_frequency = 'AUTO_FREQUENCY',
   decompose_time_series = TRUE
  ) AS
SELECT
  PARSE_TIMESTAMP("%Y%m%d", date) AS parsed_date,
  SUM(totals.visits) AS total_visits
FROM
  `bigquery-public-data.google_analytics_sample.ga_sessions_*`
GROUP BY date

上記SQLをGoogleCLoudeクエリにて入力し、実行します。

2. モデルを使用して予測

[ML.FORECAST] 関数は、bqml_tutorial.ga_arima_model モデルを使用して、予測間隔付きで将来の時系列値を予測します。

#standardSQL
SELECT
 *
FROM
 ML.FORECAST(MODEL bqml_tutorial.ga_arima_model,
             STRUCT(30 AS horizon, 0.8 AS confidence_level))

実際には、モデルの結果の評価、パラメータ調整が必要となりますが、ツール利用の説明を中心にまとめるため、割愛しています。

BigQuery ML(BQML)の導入ガイド

上記のとおりBQMLについて説明しました。

実際に導入する際の検討事項をまとめてみました。

導入が難しいケース

  • 高い精度が求められる(予測値に誤りがあってはいけない)

導入効果が見込めるケース

  • 一定の信頼区間に対して、一定の誤りがあっても許容される
  • 例えば、異常検知する際に、多めに検知されても良いケースなど

時系列データの場合、そこまで精度の高い分析が不要なケースもあり、この場合はまずはBQMLで精度検証するのはおすすめです。

まとめ

この記事を通して、BigQueryでの機械学習の方法や活用事例をご紹介しました。

機械学習が難しそうと感じている方や、どのように活用すれば良いか迷っている方にとって、BQMLは大変有効なツールとなるでしょう。

是非、データ分析にBQMLを活用してみてください。

さいごに

上記のとおり、BQMLの利用そのものは、シンプルですが、実際に運用できるかどうかは、導入してみる必要があり、詳細な部分はドキュメントや結果を見ながらの判断が問われます。

「導入そのものに不安がある」

「初期構築や数値検証の解釈についてサポートしてほしい」

というご相談もお受けしております。

無料でお問い合わせ可能ですので、お気軽にご相談ください。

お待ちしております。

 

-AI, BigQuery, DWH, データ活用