正確な収益予測は、マーケティング戦略の最適化、在庫の効率的な管理、利益の最大化を可能にする。データに基づくインサイトを活用することで、トラフィックソース、ユーザー属性、行動パターンなどの様々な要因に基づいて収益を予測する予測モデルを開発できる。
以下、BigQuery MLとGoogleアナリティクスのサンプルデータセットを使用して収益予測モデルを構築するプロセスを解説する。データ準備、特徴量エンジニアリング、モデルの構築とトレーニング、パフォーマンス評価について説明し、収益予測のための異なる回帰モデルの実装と評価方法を紹介する。
Contents
- データの準備
- データの加工と整理
- モデル選定
- 線形回帰
- リッジ回帰
- ラッソ回帰
- ランダムフォレスト
- モデルの評価
- 特徴量の重要度
- まとめ
1. データの準備
モデル構築に入る前に、データを整える必要がある。Google Analyticsサンプルデータセットは、トラフィックソース、ユーザーデモグラフィック、取引情報など、豊富なデータを提供している。このデータを一つの構造化された形式にまとめ、回帰モデルのトレーニングに適したデータセットを作成する。
-- Data Preparation
CREATE OR REPLACE TABLE `predictive-behavior-analytics.Section4.revenue_prediction_data` AS
SELECT
CONCAT(fullVisitorId, CAST(visitId AS STRING)) AS session_id,
trafficSource.source AS traffic_source,
trafficSource.medium AS traffic_medium,
device.deviceCategory AS device_type,
geoNetwork.country AS country,
totals.pageviews AS pageviews,
totals.timeOnSite AS time_on_site,
IFNULL(totals.transactionRevenue, 0) / 1000000 AS revenue
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20160801' AND '20170731';
2. データの加工と整理
探索的データ分析(EDA)
前回の分析では、次のような結果が得られた。
- トラフィックソース分析:オーガニック検索と参照トラフィックが収益の主要なドライバー。
- ユーザー属性:デスクトップユーザーとアメリカからの訪問者が全体の収益に大きく貢献。
- 行動パターン:ページビュー数が多く、サイト滞在時間が長いほど、一般的に収益が増加。
以下、これらの洞察を、特徴量の選択とエンジニアリングプロセスに使う。
特徴量の選択
モデルのパフォーマンスを向上させるために、元のデータを有意義な特徴量に変換する。重点を置くのは次の点:
- トラフィックソース: ユーザーの意図や購入の可能性を示す要素となる。
- ユーザーデモグラフィック: デバイスタイプや国は、ユーザーの行動や購買力の重要な規定要因。
- ユーザー行動: ページビュー数や滞在時間などの指標は、エンゲージメントのレベルを示し、売上との相関が考えられる。
モデルのパフォーマンス向上のためにカテゴリ特徴量を作成し、数値特徴量を正規化した。
コードはGitHubリポジトリで確認できる。
-- Feature Engineering: Categorical Variables
CREATE OR REPLACE TABLE `predictive-behavior-analytics.Section4.revenue_prediction_data_with_features` AS
SELECT
*,
CAST(traffic_source AS STRING) AS traffic_source_cat,
CAST(device_type AS STRING) AS device_type_cat,
CAST(country AS STRING) AS country_cat,
(pageviews - (SELECT AVG(pageviews) FROM `predictive-behavior-analytics.Section4.revenue_prediction_data`)) / (SELECT STDDEV(pageviews) FROM `predictive-behavior-analytics.Section4.revenue_prediction_data`) AS normalized_pageviews,
(time_on_site - (SELECT AVG(time_on_site) FROM `predictive-behavior-analytics.Section4.revenue_prediction_data`)) / (SELECT STDDEV(time_on_site) FROM `predictive-behavior-analytics.Section4.revenue_prediction_data`) AS normalized_time_on_site
FROM
`predictive-behavior-analytics.Section4.revenue_prediction_data`;
3. モデル構築とトレーニング
特徴量が準備できたら、売上を予測するための回帰モデルを構築してトレーニングを行う。
線形回帰
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section4.revenue_prediction_model`
OPTIONS(model_type='linear_reg', input_label_cols=['revenue']) AS
SELECT
traffic_source_cat,
device_type_cat,
country_cat,
normalized_pageviews,
normalized_time_on_site,
revenue
FROM
`predictive-behavior-analytics.Section4.revenue_prediction_data_with_features`;
リッジ回帰
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section4.ridge_reg_sales_model`
OPTIONS(model_type='linear_reg', l2_reg=0.1, input_label_cols=['revenue']) AS
SELECT
traffic_source_cat,
device_type_cat,
country_cat,
normalized_pageviews,
normalized_time_on_site,
revenue
FROM
`predictive-behavior-analytics.Section4.revenue_prediction_data_with_features`;
ラッソ回帰
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section4.lasso_reg_sales_model`
OPTIONS(model_type='linear_reg', l1_reg=0.1, input_label_cols=['revenue']) AS
SELECT
traffic_source_cat,
device_type_cat,
country_cat,
normalized_pageviews,
normalized_time_on_site,
revenue
FROM
`predictive-behavior-analytics.Section4.revenue_prediction_data_with_features`;
ランダムフォレストモデル
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section4.random_forest_sales_model`
OPTIONS(model_type='random_forest_regressor', input_label_cols=['revenue']) AS
SELECT
traffic_source_cat,
device_type_cat,
country_cat,
normalized_pageviews,
normalized_time_on_site,
revenue
FROM
`predictive-behavior-analytics.Section4.revenue_prediction_data_with_features`;
4. モデルの評価
モデルをトレーニングした後は、以下の指標を使ってパフォーマンスを評価する。
平均絶対誤差(MAE):予測セットの誤差の平均的な大きさを、方向性を考慮せずに測定する。予測がどの程度外れているかの平均を直接的に解釈できる。
平均二乗誤差(MSE):MAEと同様だが、誤差を平均する前に二乗する。大きな誤差をより重く罰するため、大きな誤差が特に望ましくない場合に有用だ。
平均二乗対数誤差(MSLE):MSEに似ているが、誤差を計算する前に予測値と実際の値に対数変換を適用する。目的変数の値の範囲が広く、過小評価を過大評価よりも重く罰したい場合に有用だ。
中央絶対誤差(MedAE):絶対誤差の中央値を提供し、MAEと比較して外れ値にも強い。データセットに重大な外れ値が含まれる場合に有用だ。
決定係数(R²):独立変数から予測可能な従属変数の分散の割合を測定する。モデルの説明力の一般的な感覚を与える。
平方根平均二乗誤差(RMSE):RMSEは回帰分析において重要な指標だ。予測誤差の大きさを考慮しつつ、平均的にどの程度大きいかを示す。RMSE値が低いほどモデルのパフォーマンスが良いことを示し、モデルがより実際の観測値に近い予測を行い、大きな誤差が少ないことを示唆する。
結果
線形回帰 | ラッソ回帰 | リッジ回帰 | ランダム フォレスト | |
平均絶対誤差(MAE) | 4.532 | 3.927 | 4.532 | 2.420 |
平均二乗誤差(MSE) | 2711.89 | 2719.70 | 2710.97 | 2503.89 |
平均二乗対数誤差(MSLE) | 2.573 | 1.768 | 2.568 | 0.373 |
中央絶対誤差(MedAE) | 1.554 | 1.083 | 1.554 | 4.571 |
決定係数(R²) | 0.025 | 0.022 | 0.025 | 0.100 |
平方根平均二乗誤差(RMSE) | 52.075 | 52.150 | 52.067 | 50.039 |
リッジ回帰
リッジ回帰は、MAEとMSEが比較的高く、RMSEも中程度で、R²スコアは非常に低い。これはデータの分散のごく一部しか説明できていないことを示している。MSLEが高いことは、特に小規模な収益予測において、予測値と実際の値の差が大きいことを示唆している。
線形回帰
線形回帰はリッジ回帰とほぼ同等の結果を示しており、MAE、MSE、RMSE、R²スコアは非常に近い。これにより、リッジ回帰の正則化がモデルの予測に大きな影響を与えなかったことがわかる。
ラッソ回帰
ラッソ回帰は、MAEが他の回帰モデルよりも低く、全体的に予測精度が高い。MedAEも低く、データセットの大部分においてラッソ回帰が優れている。しかし、R²スコアはわずかに低く、RMSEは高いため、大きな誤差が発生しやすいことを示している。
ランダムフォレスト
ランダムフォレストは、ほぼすべての指標で他のモデルを上回っている。
- 最も低いMAEとRMSEを持ち、全体的に少ない誤差と小さな誤差を示している。
- MSLEが非常に低く、ランダムフォレストは小規模な収益予測にも効果的に対応できている。
- R²スコアは0.100と他のモデルより高く、データの分散をより多く説明していることがわかる。
しかし、MedAEが低いことから、ランダムフォレストは大部分のケースで非常に正確な予測を行っているが、データの複雑さを完全に捉えきれていない部分があることも示唆している。
結論
全体として、ランダムフォレストが最も優れたパフォーマンスを示しており、誤差を最小限に抑え、データの分散を最もよく説明している。
リッジ回帰とラッソ回帰のような正則化モデルは、単純な線形回帰に対してわずかな利点を提供しているが、ランダムフォレストのパフォーマンスには及ばない。これは、このデータセットでは、ランダムフォレストのような複雑で非線形なアプローチが、より複雑なパターンを捉えるのに適していることを示唆している。
5. 特徴量の重要性
ランダムフォレストモデルは、売上予測において、どの特徴が最も重要かを示してくれる。特徴量の重要度を調べることで、モデルの予測に最も影響を与えている要因を特定できる。
特徴量 | 重要度ゲイン(精度向上) | 重要度ウェイト |
ページビュー | 143,755 | 65,971 |
トラフィックソース | 66,043 | 54,100 |
滞在時間 | 58,552 | 77,223 |
国 | 41,105 | 41,129 |
デバイスタイプ | 35,015 | 21,065 |
ページビュー数
- ページビュー数はモデルにおいて最も影響力のある特徴量として際立っている。これは、ページビュー数が収益予測の精度向上に大きな影響を与えることを示している。高い重要度重みも、この特徴量が決定分岐で頻繁に使用されることを示し、モデルにおける重要な役割を裏付けている。
トラフィックソース
- トラフィックソースも非常に重要な要素となっている。トラフィックがどこから来たのか(例えば、直接、リファラル、検索エンジンなど)が売上予測において重要な役割を果たすことを示している。重要度のウエイトが高いことから、この特徴量がランダムフォレスト内の多くの決定木で頻繁に使用されていることがわかり、その重要性が強調されている。
サイト滞在時間
- 滞在時間は、モデルで最も頻繁に利用されている特徴量で、重要度のウェイトが高い。重要度ゲインはページビューやトラフィックソースに比べて低いが、この特徴量が頻繁に使用されていることは、ユーザーがサイトに滞在する時間が売上予測において重要な要因であることを示している。この特徴量はモデルの精度に対して広範囲にわたり中程度の影響を与えると考えられる。
国
- ユーザーがアクセスしている国も重要な要素として挙げられる。地理的な場所が売上予測に大きく寄与していることを示しており、重要度のウェイトが41,129という数値で示されていることから、この特徴量がモデルで中程度に使用され、売上に影響を与える要因としての役割を果たしている。
デバイスタイプ
- デバイスタイプは、売上予測におけるデバイスカテゴリ(例:デスクトップ、モバイル、タブレット)の関連性を示している。重要度の重みは他の特徴量に比べて最も低いが、依然としてモデルへの貢献は注目に値する。顧客が使用するデバイスの種類は、他の要因ほどではないものの、売上予測に影響を与える可能性があることが示唆されている。
結論
分析の結果、売上予測において最も重要な要素は、モデルの精度向上(重要度ゲイン)と決定分岐での頻繁な使用(重要度ウェイト)の両面から見て、ページビューとトラフィックソースであることが明らかになった。サイト滞在時間も、モデル全体で幅広く適用されていることから、重要な役割を果たしている。国とデバイス種別は、影響度がやや低いものの、売上予測プロセスに貴重な情報を提供している。これらの主要な要素を理解することで、より効果的なターゲティングと最適化戦略を実行し、最終的により正確な売上予測を実現できる。
6. まとめ
分析の結果、ランダムフォレストが収益予測に最も効果的なモデルであり、線形回帰や正則化回帰モデルをすべての主要な指標で上回ることが示された。データ内の複雑な非線形の関係を捉える能力が、このタスクに特に適していたと考えられる。
ページビュー数、トラフィックソース、サイト滞在時間といった特徴量が、収益予測の中で最も重要な要素として浮かび上がった。特にページビュー数が最大の影響を与えており、正確な収益予測における重要性を強調している。トラフィックソースとサイト滞在時間も大きな役割を果たし、ユーザーのエンゲージメントやトラフィックの出所が収益予測において重要な要因であることが示された。
総じて、この分析から得られた洞察は、機械学習は、企業が収益の要因をより深く理解し、それに基づいて戦略を最適化するのに役立ち、より正確で実用的な収益予測につながる。