顧客離脱を予測し、貴重な顧客を維持することは、ビジネスの成功に不可欠だ。
離脱予測により、ビジネスは離脱のリスクが高いユーザーを特定し、積極的に保持対策を講じることができる。
以下、BigQuery MLとGoogle Analyticsのサンプルデータセットを使用して、特徴量の作成、予測モデルの構築・トレーニング、モデルの評価方法を解説する。
詳細なコードは、GitHubリポジトリで公開している。
Contents
- 特徴量の作成
- 予測モデルの構築とトレーニング
- ロジスティック回帰モデル
- ランダムフォレストモデル
- XGBoost モデル
- コンフュージョンマトリックスによる結果
- パフォーマンス比較
- 加重モデルと非加重モデルの比較
1. 特徴量の作成
離脱予測モデルのために、「離脱」顧客の定義と、予測に役立つ可能性のある特徴量を作成する必要がある。今回は、過去30日間にサイトを訪れていないユーザーを「離脱した」と定義する。
以下は、離脱予測に有用と思われる特徴量の一覧:
- churned: 目的変数(離脱なら1、そうでなければ0)
- num_visits: ユーザーの訪問回数
- avg_time_on_site: 1回の訪問あたりの平均滞在時間
- avg_pageviews: 1回の訪問あたりの平均ページビュー数
- total_transactions: ユーザーが行った取引の総数
- device_category: ユーザーの主なデバイスカテゴリ
- country: ユーザーの国
- traffic_medium: 主なトラフィックソースの種類
- total_pageviews: 全訪問における総ページビュー数
- total_time_on_site: 全訪問における総滞在時間
- days_as_customer: ユーザーの初回訪問と最終訪問の間の日数
2. 予測モデルの構築とトレーニング
特徴量を作成したので、離脱予測のために3種類のモデルを構築する。これらのモデルは、離脱予測のような二項分類問題に適している。
ロジスティック回帰モデル
-- Logistic Regression Model for Churn
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section8.churn_logistic`
OPTIONS(model_type='logistic_reg', input_label_cols=['churned']) AS
SELECT
* EXCEPT(fullVisitorId)
FROM
`predictive-behavior-analytics.Section8.user_churn_features`;
ランダムフォレストモデル
-- Random Forest Model for Churn
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section8.churn_random_forest`
OPTIONS(model_type='random_forest_classifier', input_label_cols=['churned']) AS
SELECT
* EXCEPT(fullVisitorId)
FROM
`predictive-behavior-analytics.Section8.user_churn_features`;
XGBoostモデル
-- XGBoost Model for Churn
CREATE OR REPLACE MODEL `predictive-behavior-analytics.Section8.churn_xgboost`
OPTIONS(model_type='boosted_tree_classifier', input_label_cols=['churned']) AS
SELECT
* EXCEPT(fullVisitorId)
FROM
`predictive-behavior-analytics.Section8.user_churn_features`;
3. コンフュージョンマトリックスによる結果
各モデルのパフォーマンスを把握するためにコンフュージョンマトリックスを生成する。
コンフュージョンマトリックスは、真陽性(TP)、真陰性(TN)、偽陽性(FP)、偽陰性(FN)の数を示すことで、分類結果の詳細を提供する。ここでは、ロジスティック回帰、ランダムフォレスト、XGBoostモデルのコンフュージョンマトリックスの分析を行う。
ロジスティック回帰
ロジスティック回帰のコンフュージョンマトリックスは、モデルの大きな限界を示している。58,728件の真陰性とわずか1件の偽陽性があり、モデルは非常に保守的で、ほとんどチャーン(離脱)を予測していない。実際の離脱者の特定には苦戦しており、1,792件の偽陰性に対してわずか2件の真陽性しか認識していない。非離脱者の予測には効果的だが、離脱予測には不向きで、リスクのあるユーザーのほとんどを見逃すため、顧客維持には適していない。
Predicted: 0 (非離脱) | Predicted: 1 (離脱) | |
予測: 0 (非離脱) | (TN) 58,728 | (FP) 1 |
Actual: 1 (離脱) | (FN) 1,792 | (TP) 2 |
ランダムフォレスト
ランダムフォレストのコンフュージョンマトリックスは、ロジスティック回帰よりも若干改善しているが、離脱予測における課題が依然として残っている。
モデルは58,729件の非離脱者(真陰性)を正確に識別し、顧客が残ることを予測する際に信頼性が高いことを示している。しかし、離脱測では依然として問題があり、12件の実際の離脱者(真陽性)しか正しく識別できず、1,782件の離脱者を見逃している(偽陰性)。
ランダムフォレストはロジスティック回帰よりも離脱者を検出する能力が向上しているが、依然として大多数のリスクのあるユーザーを見逃しており、さらなる調整や異なるモデルの検討が必要かもしれない。
Predicted: 0 (非離脱) | Predicted: 1 (離脱) | |
Actual: 0 (非離脱) | (TN) 58,729 | (FP) 0 |
Actual: 1 (離脱) | (FN) 1,782 | (TP) 12 |
XGBoost
XGBoostモデルは離脱予測においてバランスの取れた性能を示すが、依然として離脱者の正確な識別に課題がある。
モデルは58,727の非離脱者(真陰性)を正しく予測し、非離脱者2人のみを離脱者として誤分類(偽陽性)しており、継続する顧客の識別に高い精度を示している。
しかし、離脱予測には苦戦し、実際の離脱者5人(真陽性)を正しく識別する一方で、1,789人の離脱者(偽陰性)を見逃している。
Predicted: 0 (非離脱) | Predicted: 1 (離脱) | |
Actual: 0 (非離脱) | (TN) 58,727 | (FP) 2 |
Actual: 1 (離脱) | (FN) 1,789 | (TP) 5 |
結論
コンフュージョンマトリックス分析に基づくと、ランダムフォレストが実際の転換の識別と誤予測の最小化のバランスが優れているため、ユーザー転換予測の最高性能モデルとして浮上する。
XGBoostは調整が必要な可能性があるものの、有力な代替案となる一方、ロジスティック回帰は偽陰性率が高いため、この文脈では最も効果が低い。
総じて、ランダムフォレストは他の2つのモデルよりも優れているが、いずれも効果的に離脱を予測できていない。これは、リスクのある顧客をより良く捉え、離脱予測の取り組みを強化するために、さらなるモデル調整や代替アプローチの探索が必要であることを示唆している。rnative approaches is necessary to better capture at-risk customers and enhance churn prediction efforts.
4. パフォーマンス比較
ロジスティック回帰 | ランダムフォレスト | XGBoost | |
精度(Precision) | 0.667 | 1.000 | 0.714 |
再現率(Recall) | 0.001 | 0.007 | 0.003 |
正確度(Accuracy) | 0.970 | 0.971 | 0.970 |
F1スコア | 0.002 | 0.013 | 0.006 |
対数損失(Log Loss) | 0.125 | 0.195 | 0.124 |
AUC | 0.696 | 0.597 | 0.686 |
評価指標の解説
- 精度: 正しく予測できた割合
- 再現率: 実際に離脱した顧客を正しく予測できた割合
- 正確度: 離脱と予測した顧客のうち、実際に離脱した割合
- F1スコア: 精度と再現率の調和平均
- 対数損失: モデルの予測の確信度を測る指標
- AUC: モデルが正例と負例を区別できる能力を測る指標
モデルごとの評価
- ロジスティック回帰: 精度は高く、偽陽性は少ないが、再現率が極めて低く、ほとんどの離脱者を特定できていない。
- ランダムフォレスト: 精度と正確度は高いが、再現率が低く、離脱者を特定する能力に課題がある。
- XGBoost: 正確度と対数損失が良好で、予測の確信度が高いが、再現率が低く、離脱者を特定する能力に課題がある。
結論
- 精度: すべてのモデルで高い精度を示しているが、精度だけではモデルの性能を評価できない。
- 再現率: すべてのモデルで再現率が極めて低く、顧客離脱を正確に予測できていない。
- F1スコア: 再現率が低いため、F1スコアも低い。
- 対数損失: XGBoostが最も低い対数損失を示し、予測の確信度が高い。
- AUC: ロジスティック回帰が最も高いAUCを示し、クラス間の区別能力がやや優れている。
5. 加重モデルと非加重モデルの比較
クラス不均衡
予測モデル、特に二値分類問題では、クラス不均衡という問題が頻繁に発生する。
クラス不均衡とは、あるクラス(例えば、非脱離者)のデータ数が、もう一方のクラス(例えば、脱離者)のデータ数よりも圧倒的に多い状態を指す。
この不均衡があると、モデルは全体としては高い精度を達成できても、少数派のクラスを正しく予測できないという問題が生じることがある。
クラス不均衡がモデルパフォーマンスに与える影響
クラス不均衡は、以下の性能指標に影響を与える。
- 精度: 多数派クラスを正しく予測することで、高い精度を達成できるが、少数派クラスを予測する能力は考慮されていないため、誤解を招く可能性がある。
- 再現率: クラス不均衡があると、特に再現率が低くなる傾向がある。
- F1スコア: 精度と再現率の調和平均であり、クラス不均衡の影響を最も受けやすい指標の一つである。
6. 加重モデルと非加重モデルの予測比較
クラス不均衡を解消するために、誤って離脱を見逃した場合のペナルティを強化するため、クラスウェイトを調整した。
ロジスティック回帰モデルとXGBoostモデルにクラスウェイトを導入することで、パフォーマンス指標に顕著な改善が見られ、データセットのクラス不均衡への対応が強化された(残念ながら、BigQuery MLはランダムフォレストモデルでクラスウェイトをサポートしていない)。
非加重バージョンとの比較結果は以下の通り:
Logistic Regression
指標 | 非加重 | 加重 |
精度(Precision) | 0.667 | 0.097 |
再現率(Recall) | 0.001 | 0.258 |
正確度(Accuracy) | 0.970 | 0.907 |
F1スコア | 0.002 | 0.141 |
対数損失(Log Loss) | 0.125 | 0.469 |
AUC | 0.696 | 0.696 |
- 精度: 0.667から0.097に減少。精度は低下したが、より多くの離脱リスク顧客を識別。
- 再現率: 0.001から0.258へ大幅に改善。加重モデルは離脱顧客の識別に優れている
- 正確度: わずかに減少したが、0.907と依然として高い。
- F1スコア: 0.002から0.141に向上し、精度と再現率のバランスが改善された。
- 対数損失: 増加し、予測の信頼性が低下したことを示す。
- AUC: 同じままで、全体的な区別能力は変わらない。
XGBoost
指標 | 非加重 | 加重 |
精度(Precision) | 0.714 | 0.074 |
再現率(Recall) | 0.003 | 0.389 |
正確度(Accuracy) | 0.970 | 0.838 |
F1スコア | 0.006 | 0.125 |
対数損失(Log Loss) | 0.124 | 0.491 |
AUC | 0.686 | 0.685 |
- 精度: 0.714から0.074に減少。精度は低下したが、より多くの離脱リスク顧客を識別
- 再現率: 0.003から0.389へ劇的に改善。加重モデルは離脱顧客の識別に大幅に優れている。
- 正確度: 減少したが、依然として0.838と高水準。
- F1スコア: 0.006から0.125に向上し、精度と再現率のバランスが改善された。
- 対数損失: 増加し、予測の信頼性が低下したことを示す。
- AUC: わずかに減少したが、全体的にはほぼ同じ区別能力を示す。
結論
加重モデルは、特に離脱顧客の識別能力(高い再現率)において、クラス不均衡問題への対処に明確な改善を示している。これは適合率と全体的な正確度の低下を犠牲にしているが、離脱予測シナリオでは一般的で、多くの場合受け入れられるトレードオフだ。
加重モデルと非加重モデルの選択は、具体的なビジネスコンテキストに依存する:
潜在的離脱者を見逃すコスト(偽陰性)が高い場合、再現率が高い加重モデルが好ましい。
顧客を誤って潜在的離脱者と識別するコスト(偽陽性)が高い場合、非加重モデルがより適切かもしれない。
多くの離脱予測シナリオでは、より多くの潜在的離脱者を識別すること(偽陽性があっても)が好ましく、ターゲットを絞った維持努力を可能にする。したがって、加重モデルは、離脱防止戦略の実践的な適用においてより価値があるかもしれない。