クラスタ数の選び方

Pythonで学ぶカスタマーセグメンテーション

Karolis Urbonas

Head of Data Science, Amazon

手法

  • 視覚的手法:エルボー法
  • 数理的手法:シルエット係数
  • 実験と解釈
Pythonで学ぶカスタマーセグメンテーション

エルボー法

  • クラスタ数とクラスタ内二乗誤差和(SSE)をプロット(各点から中心までの二乗距離の合計)
  • 図中の「ひじ」を特定
  • エルボー=「最適」クラスタ数を示す点
Pythonで学ぶカスタマーセグメンテーション

エルボー法

# Import key libraries
from sklearn.cluster import KMeans
import seaborn as sns
from matplotlib import pyplot as plt

# Fit KMeans and calculate SSE for each *k* sse = {} for k in range(1, 11): kmeans = KMeans(n_clusters=k, random_state=1) kmeans.fit(data_normalized) sse[k] = kmeans.inertia_ # sum of squared distances to closest cluster center
# Plot SSE for each *k* plt.title('The Elbow Method') plt.xlabel('k'); plt.ylabel('SSE') sns.pointplot(x=list(sse.keys()), y=list(sse.values())) plt.show()
Pythonで学ぶカスタマーセグメンテーション

エルボー法

エルボー法のチャート:

Pythonで学ぶカスタマーセグメンテーション

エルボー法

エルボー法のチャート:

Pythonで学ぶカスタマーセグメンテーション

エルボー法の活用

  • ひじの点、またはその次の点を選ぶのが最適
  • 目安として使い、複数の解を検証する
  • datamart_rfm に基づくエルボー・プロット

Pythonで学ぶカスタマーセグメンテーション

実験的アプローチ:セグメント分析

  • ひじ付近の解でクラスタリングを構築
  • 特性を分析:平均RFM値
  • 相互に比較し、最もビジネス的に妥当な解を選ぶ
Pythonで学ぶカスタマーセグメンテーション

実験的アプローチ:セグメント分析

  • 以前の2クラスタ解
  • 同じ正規化RFMデータでの3クラスタ解
Pythonで学ぶカスタマーセグメンテーション

最適なクラスタ数を見つけましょう!

Pythonで学ぶカスタマーセグメンテーション

Preparing Video For Download...