クラスター分析|セグメンテーション設計の実務ガイド(手法選択・標準化・評価)
「クラスター分析を活用したいが、どう判断すればいいかわからない」
そのとき多くの人は、K-means、階層的クラスタ、GMM、標準化、距離設計など「技術」を学ぶことから始めます。
もちろん技術は重要です。
ただ実務では、技術以前に「前提(目的・戦略・判断軸)」が設計されていないことで、何を学んでも噛み合わない状態になっているケースが少なくありません。
何のためにクラスター分析を活用するのか(目的)
どこで勝つのか(戦略)
何を見て良し悪しを判断するのか(判断軸)
ここが曖昧だと、クラスター分析の活用が「作業」になりやすく、改善の方向性もブレます。
結果として、クラスター分析を活用しても成果が出ない、改善施策を打っても成果が出ない、といったズレが起きやすくなります。
顧客や商品を「似た者同士」でグループ化することで、施策の打ち手が明確になる可能性があります。本記事は、クラスタリングの手法選択・前処理・評価・活用までを一気に整理します。
この記事が想定する読者:セグメンテーションにクラスター分析を活用したいが、目的・判断軸を設計したい担当者。
判断を誤るとどうなるか:K-means・階層・GMMなどの技術から入ると前提が曖昧で「使えるセグメント」にならない。先に目的・戦略・判断軸を置き、標準化→手法選択→Kの決定→安定性確認の順で回すと失敗しにくい。
※この記事は、クラスター分析を理解し、判断に活用する方向けです。即効性を求める方や、すでに前提設計が明確な方には、より具体的な実践記事をおすすめします。
TL;DR
- 目的: 似たサンプルを自動でグルーピング
- 手順: 標準化 → 手法選択(K-means/階層/GMM)→ K 決定 → 安定性確認
- 注意: 距離設計と外れ値、解釈できる K の選択
まずはここだけ(やさしい導入)
- 何をする?: 似ているサンプル同士を自動でグループに分ける
- いつ使う?: 顧客/商品セグメント、レコメンド前処理、地域区分、異常検知の前段
- どう選ぶ?: 連続量中心なら K-means、構造把握は階層、楕円/混合は GMM
用語ミニ辞典(1 行で)
- 距離: どれだけ“似ている/違うか”の尺度(ユークリッド、コサイン、Gower など)
- セントロイド: クラスタの“中心”(平均ベクトル)。K-means の代表
- デンドログラム: 階層クラスタの樹形図。切る高さでクラスタ数が決まる
- シルエット係数: クラスタ分離の良さ(-1〜1)。高いほど良い
手法の選び方(要約)
- K-means: 連続量中心、球状クラスタ、計算高速。初期値とスケールに敏感
- 階層的クラスタ: デンドログラムで構造把握、距離・連結法の選択が鍵
- GMM: 楕円クラスタ、ソフト割当、共分散構造で柔軟。初期値/局所解に注意
前処理(距離設計・標準化)
- 標準化: Z スコアでスケールを揃える(距離の公平性)
- カテゴリ変数: ダミー化 or Gower 距離など混合距離
- 外れ値: センターに影響が大。ロバスト手法や外れ値処理を検討
クラスタ数の決め方
- エルボー法、シルエット係数、Gap 統計
- 実務では「使える解釈」との両立(マーケ用途の解像度)
安定性と評価
- 再サンプリングで安定性をチェック(Jaccard 類似など)
- シルエット、Davies–Bouldin、Calinski–Harabasz 指標
活用・可視化
- PCA で 2D 可視化、セントロイドのプロファイル化
- セグメント別施策(価格・レコメンド・CRM)
身近なたとえ
「似た本を同じ棚に並べる」作業に近いです。表紙(デザイン)、ページ数(ボリューム)、価格(値段)など複数特徴を総合して“近いもの”を同じ棚(クラスタ)へ。距離の定義とスケール合わせが大事です。
ミニ例題とコード(K-means)
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
df = pd.DataFrame({
'price':[120,130,90,300,280,310,85,95],
'pages':[180,200,150,420,410,450,140,155],
'design_score':[3,4,3,5,5,4,2,3]
})
X = StandardScaler().fit_transform(df)
kmeans = KMeans(n_clusters=2, n_init=10, random_state=42)
labels = kmeans.fit_predict(X)
df['cluster'] = labels
print(df.groupby('cluster').mean()) # セントロイドのプロファイル
読み方の例:
- クラスタ 0: 価格・ページが低め=「ライト層向け」
- クラスタ 1: 価格・ページが高め=「濃い読者向け」
可視化コード(PCA 2D 散布図)
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
pca2 = PCA(n_components=2, random_state=42)
Z = pca2.fit_transform(X)
plt.figure(figsize=(5,4))
for label in sorted(set(labels)):
idx = labels == label
plt.scatter(Z[idx,0], Z[idx,1], s=40, label=f'cluster {label}', alpha=0.8)
plt.title('Clusters (PCA 2D)')
plt.legend(); plt.tight_layout(); plt.show()
セントロイドのプロファイル(棒グラフ)
import pandas as pd
import matplotlib.pyplot as plt
centroid = pd.DataFrame(kmeans.cluster_centers_, columns=df.columns)
ax = centroid.T.plot(kind='bar', figsize=(6,3))
ax.set_title('Cluster centroid profiles (Z-scaled)')
ax.set_ylabel('z-score')
plt.tight_layout(); plt.show()
実務ケーススタディ(EC 商品のセグメント)
目的: EC の商品を特徴で分け、レコメンドと棚割りを最適化したい。
- 目的とデータ
- 価格・レビュー数・平均評価・リピート率・カテゴリ(ダミー化)
- 前処理
- 連続量は標準化、カテゴリはダミー化 or Gower 距離
- 外れ値は Winsorize かロバスト距離
- 手法と K の決定
- K-means を第一候補。エルボー/シルエットで範囲を絞り、解釈できる K を採用
- 評価と安定性
- 再サンプリングで Jaccard 類似を測定。期間差でも安定するか確認
- 施策への落とし込み
- セントロイドのプロファイルで、価格訴求/品質訴求/回転率重視などの棚割り
- 類似クラスタ間での交差レコメンド、在庫配分の最適化
import numpy as np
import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
df = pd.DataFrame({
'price':[120,130,90,300,280,310,85,95,140,260,270,320],
'reviews':[40,55,20,300,260,310,15,18,70,220,250,330],
'rating':[3.9,4.1,3.5,4.7,4.6,4.5,3.2,3.6,4.0,4.6,4.7,4.8]
})
X = StandardScaler().fit_transform(df)
for k in range(2,6):
km = KMeans(n_clusters=k, n_init=10, random_state=42).fit(X)
s = silhouette_score(X, km.labels_)
print('k=', k, 'silhouette=', round(s,3))
よくある誤解とその構造
クラスター分析を活用する際、「手法を選べば成果が出る」という誤解が生じやすいです。具体的には「クラスター分析を活用すれば成果が出る」「手法を選べば成果が出る」「クラスタ数を決めれば成果が出る」といった形で現れます。
なぜこの誤解が生じるのか
これらの誤解は、「手法の選択」と「前提設計」の関係を逆転させて考えることで生じます。
多くの解説では、手法の選択(クラスター分析の適用、K-means/階層的クラスタ/GMMの選択、クラスタ数の決定など)が重要であることが強調されます。確かに手法の選択は重要です。しかし、手法の選択が先に来るのではなく、「何を達成したいのか」「どこで勝つのか」「何を見て良し悪しを判断するのか」という前提設計が先にあるべきです。
前提設計が明確でない状態で手法を選んでも、どれを選んでも効果が発揮されにくい傾向があります。なぜなら、手法は「手段」であり、目的が明確でなければ、手段の選択基準が曖昧になるからです。
判断の構造を可視化する
クラスター分析を活用する際の判断プロセスを整理すると、以下のようになります:
- 前提設計(目的・戦略・判断軸の明確化)
- 何を達成したいのか(顧客セグメント?商品セグメント?異常検知?)
- どこで勝つのか(どの特徴量を使うのか)
- 何を見て良し悪しを判断するのか(シルエット係数?解釈可能性?実務適合性?)
- データの明確化(分析対象の特定)
- どのデータを分析するのか
- データの種類と品質はどうか
- 前処理の実施(前提設計に基づく前処理)
- 標準化、距離設計、外れ値処理など
- 手法の選択(前提設計に基づく選択)
- 手法の選択(K-means/階層的クラスタ/GMM)
- クラスタ数の決定(エルボー法、シルエット係数、Gap 統計など)
- 解釈と活用(実務での活用)
- セントロイドのプロファイル化
- セグメント別施策(価格・レコメンド・CRM)
この順序を逆転させると、手法の選択が目的化し、成果につながりにくくなります。
実務で見落とされがちな点
前提設計が欠落している場合、以下のような問題が起きやすいです:
- クラスター分析を活用しても成果が出ない
- 改善施策を打っても成果が出ない
- 改善の方向性がブレる
これらの問題は、手法の選択ではなく、前提設計の欠落が原因である可能性が高いです。
また、クラスタ数の決定が目的化してしまう誤解も生じやすいです。クラスタ数は「実務で使える解釈との両立」が重要であり、エルボー法やシルエット係数だけで決めるのではなく、マーケ用途の解像度も考慮する必要があります。
よくある落とし穴(チェックリスト)
- スケーリング忘れ(距離バイアス)
- クラスタ数の独り決め(指標+業務解釈で整合)
- 外れ値の放置(セントロイド暴走)
- カテゴリ変数の扱い不適切(混合距離やダミー)
誤用事例 → 是正案
- 誤用: K=2 と決め打ちして恣意的な解釈
- 是正: エルボー/シルエット/Gap +業務要件で決定、複数案を比較
- 誤用: そのまま施策に直行
- 是正: 再現性(別期間/サンプル)で安定性検証 → 施策定義
- 誤用: 変数を入れ過ぎて“何でもあり”のクラスタ
- 是正: 目的に関係する軸を選定、冗長性は PCA 等で圧縮
一般的に語られるクラスター分析の考え方
クラスター分析について、多くの場合、以下のような考え方が語られます。ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。
クラスター分析の重要性
クラスター分析は、顧客や商品を「似た者同士」でグループ化することで、施策の打ち手が明確になる手法として重要とされています。似ているサンプル同士を自動でグループに分けることができ、顧客/商品セグメント、レコメンド前処理、地域区分、異常検知の前段などで活用できる可能性があります。
判断の軸:
- 自社の目的(何を達成したいか)に照らして、どのクラスター分析が重要か
- 自社のリソース(時間・予算・人材)に照らして、どのクラスター分析が現実的か
- 自社のターゲット顧客に照らして、どのクラスター分析が有効か
実務視点で見ると見落とされがちな点
一般的な考え方とは別に、実務では以下の点が見落とされがちです。ただし、これらもすべてのケースに当てはまるわけではありません。
前提設計の欠落
クラスター分析で成果が出ない最大の原因は、手法の選択ではなく、前提設計(目的・戦略・判断軸)の欠落である可能性が高いです。
何が起きるか:
- クラスター分析を活用しても成果が出ない
- 改善施策を打っても成果が出ない
- 改善の方向性がブレる
判断の軸:
- 目的(何を達成したいか)が明確か
- 戦略(どこで勝つか)が決まっているか
- 判断軸(何を見て良し悪しを判断するか)が設定されているか
前処理の重要性
標準化、カテゴリ変数の扱い、外れ値処理などの前処理が適切に行われていないと、クラスタリングの結果が歪む可能性があります。標準化(Z スコアでスケールを揃える)により距離の公平性を担保し、カテゴリ変数はダミー化 or Gower 距離など混合距離を使用し、外れ値はロバスト手法や外れ値処理を検討することが重要とされています。
安定性評価の欠如
再サンプリングで安定性をチェック(Jaccard 類似など)せずに施策に直行すると、期間を変えるとクラスタが不安定になる可能性があります。再現性(別期間/サンプル)で安定性検証を行い、その後施策定義を行うことが重要とされています。
練習問題(読み取りと設計)
- スケールが混在(価格・レビュー数・評価)。前処理は?
- ヒント: 連続は標準化、カテゴリはダミー or Gower
- シルエットが k=3 と k=4 で僅差。どう決める?
- ヒント: 解釈可能性と業務単位(施策設計のしやすさ)で選ぶ
- 期間を変えるとクラスタが不安定。どう検証する?
- ヒント: 再サンプリングや別期間で Jaccard 類似を比較
- 標準化 + ダミー化(または Gower)。距離の公平性を担保。
- 数値指標だけでなく、施策の切り分けやすさを重視し k を選定。
- 期間を跨いでクラスタ割当の一致度(Jaccard)を測定し、安定な設計へ。
5分診断:クラスター分析を活用する前に確認すべきこと
クラスター分析を活用する前に、以下の診断で自社の状況を確認することが有効な場合があります。
Q1:前提設計(目的・戦略・判断軸)が明確か?
- Yes → Q2へ
- No → 前提設計を明確にする(クラスター分析活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)
Q2:データ(どのデータを分析するか)が明確か?
- Yes → Q3へ
- No → データを明確にする(分析対象のデータ、データの種類、データの品質など)
Q3:継続的な改善(効果測定・改善サイクル)ができているか?
- Yes → 次のステップへ
- No → 継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)
診断結果に基づく次のアクション:
- Q1がNoの場合:前提設計を明確にする(クラスター分析活用の目的、どの指標を重視するか、何を見て良し悪しを判断するか)
- Q2がNoの場合:データを明確にする(分析対象のデータ、データの種類、データの品質など)
- Q3がNoの場合:継続的な改善の仕組みを作る(効果測定、改善サイクル、次の施策の決定)
よくある質問(FAQ)
- Q: K-means と階層ではどちらが良い?
- A: 目的次第。構造把握は階層、規模と速度は K-means が有利
- Q: カテゴリ変数が多い場合は?
- A: Gower 距離や k-prototypes など混合距離法を検討
クラスター分析の要点と判断の軸
クラスター分析は、顧客や商品を「似た者同士」でグループ化することで、施策の打ち手が明確になる可能性がある手法です。似ているサンプル同士を自動でグループに分けることができ、顧客/商品セグメント、レコメンド前処理、地域区分、異常検知の前段などで活用できる可能性があります。
ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。
判断の軸
クラスター分析を活用する際は、以下の判断軸を参考にすることが有効な場合があります:
- 前提設計(目的・戦略・判断軸)が明確か
- データ(どのデータを分析するか)が明確か
- 継続的な改善(効果測定・改善サイクル)ができているか
ただし、これらは一般的な傾向であり、すべてのケースに当てはまるわけではありません。状況に応じて、複数の視点から検討し、最適な方法を見つけることが重要です。
重要なポイント
- 標準化:Z スコアでスケールを揃える(距離の公平性)
- 手法選択:連続量中心なら K-means、構造把握は階層、楕円/混合は GMM
- クラスタ数の決定:エルボー法、シルエット係数、Gap 統計などで決定し、「使える解釈」との両立を考慮
- 安定性評価:再サンプリングで安定性をチェック(Jaccard 類似など)
- 外れ値処理:センターに影響が大きいため、ロバスト手法や外れ値処理を検討
次のステップ
今回紹介した考え方は、あくまで一つの視点です。重要なのは、自社の状況・リソース・目的に照らして、どこを採用し、どこを捨てるかを考えることです。
「正解」は存在しませんが、「自社にとって可能性が高い選択肢」を複数の視点から検討し、検証を繰り返すことで、成果につながる可能性があります。
具体的には、以下のステップを検討することが有効な場合があります:
- 前提設計(目的・戦略・判断軸)を明確にする
- 診断フローで自社の状況を確認する
- 前処理:標準化、カテゴリ変数の扱い、外れ値処理
- 手法選択:問題の性質とデータ特性に合った手法を選択(K-means、階層的クラスタ、GMMなど)
- クラスタ数の決定:エルボー法、シルエット係数、Gap 統計などで決定
- 安定性評価:再サンプリングで安定性をチェック(Jaccard 類似など)
- 可視化と解釈:PCA で 2D 可視化、セントロイドのプロファイル化
- 施策への落とし込み:セグメント別施策(価格・レコメンド・CRM)
はじめて取り組む方へ(補足)
クラスター分析は、最初から完璧を目指すよりも、目的→判断軸→小さな検証の流れを一度回してみる方が前に進みやすいです。まずは自社にとって重要度が高い論点を1つだけ選び、身近なデータで小さく試してみてください。
判断の土台として押さえておくこと
- 目的・戦略・判断軸をクラスタリングの前に置く:何のためにグルーピングするか、どこで勝つか、何を見て良し悪しを判断するか。曖昧だと作業化する。
- 標準化→手法選択→K→安定性:距離設計と外れ値に注意。K-meansは規模・速度、階層は構造把握、GMMは確率的な割り当て。カテゴリが多い場合はGower・k-prototypesを検討。
- 解釈できるKを選ぶ:指標だけでなく、施策に使えるセグメントか、解釈可能性で判断する。
次の一手:主成分分析(PCA)/潜在クラス分析(LCA)/データサイエンス手法ハブ
関連と次の一歩
参考資料
- Hastie, Tibshirani, Friedman. The Elements of Statistical Learning.
クラスター分析についてのご相談はこちら