top of page

Webアクセス将来予測をAIを使って、将来予測をしよう

いよいよ、BigQueryMLを使って、Webアクセス将来予測を行いましょう

所長のBlogの「GoogleのBigQuery MLを使って、Webのアクセス分析にAIを取り込もう」で予告した、Webアクセス将来予測を、実際に行ってみましょう。


ステップは、至って簡単です。

  1. BigQuery空間に、新しくデータセットを作成

  2. データ予測のためのデータテーブルを作成

  3. ページビュー(PageView)の予測モデルを作成

  4. 今後30日間のページビュー(PageView)の予測

なります。


なお、今回使うBigQueryMLは、さまざまなことができます。また、使い方によっては、料金が膨らむことがあるので、気になる方は、以下の文章を確認してください。



BigQuery空間に、新しくデータセットを作成

データの推計では、試行錯誤を行うことが多いので、Google Analytics(GA4)のデータをそのまま、加工や分析に使うことは、あまりお勧めしません。別なデータセットを使って、Webアクセス将来予測を行うのが良いでしょう。


データセットの作り方は、簡単ですが、その前に確認事項があります。Google Cloudの場合は、どのリージョンにデータセットを作るのかを、確認する必要があります。クエリの保存場所で、データセットの保存場所が同じ方が、操作がスムーズなようです。


クエリの保存場所の確認は、以前作成したクエリを開き、その保存リージョンを確認します。

クエリのリージョンを確認
クエリのリージョンを確認
クエリのリージョン確認
クエリのリージョン確認

私の場合は、asia-northeast1(東京)だったので、これを参考にしてデータセットを作成します。


データセットの作成の仕方は、簡単で、自分のBigQueryのプロジェクトの横の「3点」マークから、「データセットを作成」を選ぶだけです。

BigQueryでデータセットを新規に作成
BigQueryでデータセットを新規に作成

すると、データセットの設定画面が出てくるので、自分でデータセットの名前を決めて、データセットのリージョンをクエリと同じに設定すれば、OKです。

データセットの作成画面
データセットの作成画面

上記の「データセットを作成」を押すと、BigQueryのプロジェクト内に、新しいデータセットができていると思います。


データ予測のためのデータテーブルを作成

さぁ、あとは、SQLの作成を3つ行うだけで、とてもシンプルです。


まずは、Google Analytics(GA4)のデータから、予測モデル作成のためのデータベースを作成します。


今回は、SQLを貼り付けるので、このSQLを自分の環境に合わせて変更してください。なお、このSQLも実は、AIに生成してもらいました。それは、次回の所長のBlogで種明かしをしましょう。


まずは、新規のクエリを開き、そこに以下をコピペしましょう。

CREATE OR REPLACE TABLE `big-query-learning-429123.predict.GA4` AS
# big-query-learning-429123 は、自分の環境に合わせて変更してください。
# predict は、先ほど作った、データセット名です。
SELECT
  DATE(TIMESTAMP_MICROS(event_timestamp)) AS date,
  COUNT(DISTINCT user_pseudo_id) AS users,
  COUNT(*) AS total_events,
  SUM(IF(event_name = 'page_view', 1, 0)) AS pageviews
FROM
  `big-query-learning-429123.analytics_404904409.events_*`
# big-query-learning-429123.analytics_404904409.events_* は、自分の環境に合わせて変更してください。

WHERE
  _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE(), INTERVAL 1 YEAR))
  AND FORMAT_DATE('%Y%m%d', CURRENT_DATE())
GROUP BY
  date
ORDER BY
  date;

このクエリを保存して、実行しましょう。保存する時の場所は、先ほど同じ自分のリージョンにするのが良いでしょう。


これを、実行すると、先ほど作った、predictフォルダーの下に、GA4というデータテーブルが作成されています。

GA4というデータテーブルが作成された
GA4というデータテーブルが作成された

ページビュー(PageView)の予測モデルを作成

これは、以下のSQLをコピペするだけです。

CREATE OR REPLACE MODEL `big-query-learning-429123.predict.traffic_forecast_model`
# big-query-learning-429123 は、自分の環境に合わせて変更してください。
# predict は、先ほど作った、データセット名です。
OPTIONS(
  model_type='ARIMA_PLUS',
  time_series_timestamp_col='date',
  time_series_data_col='pageviews',
  auto_arima = TRUE,
  data_frequency = 'DAILY',
  holiday_region = 'JP'  -- 日本の休日を考慮する場合
) AS
SELECT
  date,
  pageviews
FROM
  `big-query-learning-429123.predict.GA4`;
# big-query-learning-429123 は、自分の環境に合わせて変更してください。
# predict は、先ほど作った、データセット名です。

実行すると、今回作ったデータセットの下に、モデルも作成されます。

Webアクセスの将来予測モデルの作成
Webアクセスの将来予測モデルの作成

今後30日間のページビュー(PageView)の予測

最後に、過去のデータから、ここでは、今後30日間のページビューの将来予測を行ってみましょう。


SQLは以下のようにシンプルです。

SELECT
  forecast_timestamp AS date,
  forecast_value AS predicted_pageviews
FROM
  ML.FORECAST(MODEL `big-query-learning-429123.predict.traffic_forecast_model`,
# big-query-learning-429123 は、自分の環境に合わせて変更してください。
# predict は、先ほど作った、データセット名です。
              STRUCT(30 AS horizon, 0.8 AS confidence_level))
ORDER BY
  date;

実行すると、以下のように、将来のページビューが予測されます。

Webアクセス数の将来予測
Webアクセス数の将来予測

Webアクセス将来予測を、今後も行うには

この将来予測は、過去のデータが多く蓄積されるほど、予測の精度が高くなります。なので、ぜひ繰り返し、この手法を重ねて、AI予測を体験してください。


また、将来予測のパラメーターも変更、調整可能な場所が多いので、そこもこれから、遊んでみようと思います。



閲覧数:150回0件のコメント

Comments


bottom of page