🎯 STEP 29: クラスター分析の実践
似た特徴を持つ顧客をグループ化しよう
📋 このステップで学ぶこと
- クラスター分析とは何か
- k-means法の仕組み
- 階層的クラスタリング
- 適切なクラスター数の決定
- 実務での顧客セグメント化
学習時間の目安:4時間
🔍 1. クラスター分析とは
基本概念
似た特徴を持つデータをグループ(クラスター)にまとめる分析手法
RFM分析との違い:
RFM分析:
・あらかじめ決めた基準(R・F・M)でセグメント化
・分類ルールが明確
・例:R=5, F=5, M=5 → Champions
クラスター分析:
・データから自動的にグループを発見
・予想外のパターンが見つかることも
・多次元の特徴を同時に考慮可能
ビジネスでの活用:
1. 顧客セグメンテーション:似た顧客をグループ化
2. 商品分類:似た売れ方をする商品を発見
3. 地域分析:似た特性の店舗・エリアを発見
4. 異常検知:どのグループにも属さない異常データを発見
クラスター分析の種類
| 手法 | 特徴 | データ量 | 用途 |
|---|---|---|---|
| k-means法 | クラスター数を事前指定、高速 | 大規模OK | 最も一般的 |
| 階層的クラスタリング | デンドログラムで可視化 | 〜数千件 | 探索的分析 |
| DBSCAN | 密度ベース、形状自由 | 中規模 | 異常検知 |
| GMM | 確率的、ソフト分類 | 中規模 | 曖昧な境界 |
2つの主要アプローチ
特徴:
・クラスター数を事前に指定
・計算が速い
・大規模データに向いている
・最もポピュラー
メリット:シンプル、高速
デメリット:k数の事前決定が必要
特徴:
・クラスター数を指定しない
・樹形図(デンドログラム)で可視化
・小〜中規模データ向け
メリット:k数を後から決定可能
デメリット:計算コストが高い
📊 2. k-means法の実践
アルゴリズムの仕組み
ステップ1:初期化
・クラスター数k個を決める(例:k=3)
・ランダムにk個の中心点を配置
ステップ2:割り当て
・各データを最も近い中心点のクラスターに割り当て
・距離はユークリッド距離を使用
ステップ3:中心の更新
・各クラスターの新しい中心を計算
・中心 = そのクラスター内の全データの平均
ステップ4:繰り返し
・ステップ2と3を繰り返す
・中心が変わらなくなったら終了
Pythonでの実装
クラスター数の決定
クラスタリングの実行と解釈
🌳 3. 階層的クラスタリング
デンドログラム(樹形図)の作成
クラスター数を決める方法
1. エルボー法(Elbow Method)
・慣性(クラスター内の距離の総和)をプロット
・「肘」のように曲がるポイントを探す
・そこがクラスター数の目安
2. シルエット分析(Silhouette Analysis)
・各データがどれだけ適切にクラスターに属しているか
・スコアが高いほど良い分類
・-1〜1の範囲(1に近いほど良い)
3. ビジネス判断
・実務で扱えるセグメント数
・通常3〜7個が適切
・多すぎると施策が複雑になる
🚀 4. 実務での活用
セグメント別施策の設計
⚠️ 5. 注意点とベストプラクティス
必ず守るべきこと
標準化しないとどうなるか:
例:購買頻度(0〜30回)と金額(0〜500,000円)
・金額のスケールが大きすぎる
・距離計算で金額が支配的になる
・頻度の情報が無視される
標準化の方法:
・StandardScaler:平均0、標準偏差1に変換
・MinMaxScaler:0〜1の範囲に変換
・scikit-learnのStandardScalerが標準的
RFM分析との使い分け
| 観点 | RFM分析 | クラスター分析 |
|---|---|---|
| シンプルさ | ◎ 簡単 | △ やや複雑 |
| 説明しやすさ | ◎ 明確 | ○ 解釈が必要 |
| 変数の数 | 3変数(R,F,M) | 多変数OK |
| 発見可能性 | △ 既知のパターン | ◎ 新発見あり |
| 推奨場面 | まずはこちらから | RFMで不十分な時 |
📝 STEP 29 のまとめ
1. クラスター分析の基本
- 似た特徴でグループ化
- データから自動的にパターンを発見
2. k-means法
- 最も一般的な手法
- クラスター数を事前に指定
3. クラスター数の決定
- エルボー法・シルエット分析
- ビジネス的な扱いやすさも考慮
4. 重要ポイント
- データの標準化は必須
- 結果をビジネス的に解釈する
クラスター分析は、データから自動的にパターンを発見する強力な手法です!
成功のコツ:
・データを必ず標準化する(超重要!)
・適切なクラスター数を選ぶ
・結果をビジネス的に解釈する
・各クラスターに分かりやすい名前をつける
RFM vs クラスター分析:
・RFM:シンプル、説明しやすい、実装が簡単
・クラスター:多次元、予想外の発見、高度
→ まずはRFM、必要に応じてクラスター!
次のSTEP 30では、セグメンテーション戦略を学びます!
STEP 30では、「セグメンテーション戦略」を学びます。分析結果を実際のマーケティング施策に落とし込む方法を習得しましょう!
📝 練習問題
クラスター分析とRFM分析の違いを説明してください。どのような場面でクラスター分析を選ぶべきですか?
RFM分析:
・あらかじめ決めた基準(R・F・M)でセグメント化
・ルールが明確で説明しやすい
・3変数に限定
クラスター分析:
・データから自動的にグループを発見
・多次元の特徴を同時に考慮可能
・予想外のパターンが見つかることも
クラスター分析を選ぶ場面:
・R・F・M以外の変数も使いたい(年齢、地域など)
・RFMでは見えないパターンを発見したい
・より詳細なセグメント分けが必要
・データ駆動のアプローチをしたい
なぜクラスター分析の前にデータの標準化が必要ですか?標準化しないとどのような問題が起こりますか?
標準化が必要な理由:
k-means法は距離を使ってクラスターを決めるため、変数のスケールが異なると問題が起こる。
標準化しない場合の問題:
例:
・購買頻度:0〜30回
・購買金額:0〜500,000円
金額のスケールが圧倒的に大きいため:
・距離計算で金額が支配的になる
・頻度の情報がほぼ無視される
・意味のあるクラスタリングができない
標準化の効果:
・各変数を平均0、標準偏差1に変換
・すべての変数が同じスケールになる
・各変数の情報が適切に反映される
k-means法でクラスター数を3、4、5で試したところ、以下の結果になりました。
k=3:慣性=1000、シルエットスコア=0.55
k=4:慣性=800、シルエットスコア=0.48
k=5:慣性=650、シルエットスコア=0.42
どのクラスター数を選ぶべきですか?
分析:
慣性(Inertia):
・kを増やせば必ず減少する
・この指標だけでは判断できない
シルエットスコア:
・k=3が最も高い(0.55)
・kを増やすと品質が下がっている
判断:
k=3を選ぶ理由:
1. シルエットスコアが最も高い(0.55)
2. 3セグメントは実務で扱いやすい
3. 施策を集中できる
4. 組織的に管理しやすい
クラスター分析の結果、以下の3つのセグメントが見つかりました。
クラスター0:Recency=10日、Frequency=25回、Monetary=¥15,000、Age=25歳
クラスター1:Recency=60日、Frequency=3回、Monetary=¥200,000、Age=55歳
クラスター2:Recency=30日、Frequency=10回、Monetary=¥50,000、Age=40歳
各クラスターに名前をつけ、それぞれに適した施策を1つずつ提案してください。
セグメント命名と施策:
クラスター0:「若年アクティブ層」
・特徴:高頻度・低単価、20代
・施策:アップセル戦略
→ 上位商品の提案で客単価向上
→ 「あと¥1,000で送料無料」など
クラスター1:「富裕シニア層」
・特徴:低頻度・高単価、50代
・施策:VIP待遇
→ 専用コンシェルジュサービス
→ 限定商品の先行案内
クラスター2:「一般ミドル層」
・特徴:バランス型、40代
・施策:ロイヤリティプログラム
→ ポイント制度でリピート促進
→ クロスセルでカテゴリ拡大
あなたはECサイトのデータ分析担当です。顧客データ(購買頻度、購買金額、サイト訪問回数、会員期間)を使ってクラスター分析を行う計画です。
分析の手順を5ステップで説明し、各ステップで注意すべきポイントを述べてください。
5ステップの分析手順:
ステップ1:データの準備と前処理
・欠損値の処理(削除or補完)
・外れ値の確認と対処
・変数の選択(4変数:頻度、金額、訪問、期間)
注意:外れ値がクラスタリングを歪める可能性
ステップ2:データの標準化
・StandardScalerで各変数を標準化
・平均0、標準偏差1に変換
注意:標準化しないと金額が支配的になる
ステップ3:クラスター数の決定
・エルボー法で慣性をプロット
・シルエットスコアを計算
・2〜10程度の範囲で比較
注意:統計指標とビジネス実用性のバランス
ステップ4:クラスタリングの実行
・k-meansを実行(random_state固定)
・各顧客にクラスターを割り当て
・クラスター別の統計を算出
注意:n_init=10以上で安定した結果を得る
ステップ5:結果の解釈と施策立案
・各クラスターの特徴を分析
・分かりやすい名前をつける
・セグメント別の施策を設計
注意:施策の実行可能性を考慮、ステークホルダーと合意
❓ よくある質問
k-means法を推奨:
・データ数が多い(数千〜数十万件)
・クラスター数の目安がある
・高速処理が必要
・定期的に分析を更新する
階層的クラスタリングを推奨:
・データ数が少ない(〜数百件)
・クラスター数が不明
・階層構造を見たい
・探索的分析
実務では:
迷ったらk-meansから始める!
理由:
・k-meansは初期の中心点をランダムに配置
・初期値が悪いと、局所最適解に陥る
対策:
1. random_state指定:乱数を固定して再現性を確保
2. 複数回実行:n_init=10で最良の結果を採用
3. k-means++:scikit-learnのデフォルト、安定した結果
実務では:
random_stateを指定すればOK!
方法1:ダミー変数化
・性別(男/女)→ 男ダミー(0/1)
・地域(東京/大阪)→ 東京ダミー、大阪ダミー…
方法2:専用アルゴリズム
・k-modes:カテゴリカルデータ専用
・k-prototypes:数値+カテゴリカル混在
実務での推奨:
・少数ならダミー変数化
・または、数値データのみで分析
統計的な基準:
・エルボー法:慣性が急に下がらなくなる点
・シルエットスコア:最も高いk
ビジネス的な基準:
・3〜7個が扱いやすい
・各セグメントに十分な人数が必要
・施策を立てられる粒度
推奨アプローチ:
1. 統計指標で候補を2〜3個に絞る
2. 実際のクラスター結果を確認
3. ビジネス的に意味があるか評価
4. ステークホルダーと合意
更新頻度の目安:
・ECサイト:月1回〜四半期
・B2Bサービス:四半期〜半年
・安定したビジネス:年1回
更新のトリガー:
・大きなキャンペーン後
・商品ラインナップの変更後
・顧客数が大幅に増減した時
・施策の効果が低下した時
推奨:
・まずは四半期ごとに更新
・変化が少なければ頻度を下げる
説明のコツ:
1. 分かりやすい名前をつける
・「クラスター0」→「若年アクティブ層」
・特徴を一言で表す名前
2. 代表的な顧客像を描く
・「20代女性、月2回購入、SNSでシェア」
・ペルソナとして具体化
3. 施策に紐づける
・「このセグメントにはこの施策」
・アクションに直結させる
4. ビジュアルで見せる
・散布図、レーダーチャート
・各セグメントの特徴を可視化
避けるべきこと:
・技術的な説明(k-means、慣性など)
・統計用語の多用
学習メモ
ビジネスデータ分析・意思決定 - Step 29