クラスタ数は?

Pythonで学ぶクラスタ分析

Shaumik Daityari

Business Analyst

適切なkの見つけ方

  • k-meansで適切なクラスタ数(k)を決める絶対的な方法はありません
  • エルボー法

Pythonで学ぶクラスタ分析

歪みの再確認

  • 歪み: 点からクラスタ中心までの二乗距離の合計
  • クラスタ数が増えると減少します
  • クラスタ数が点の数に等しいと0になります
  • エルボー図: クラスタ数と歪みの線グラフ

Pythonで学ぶクラスタ分析

エルボー法

  • エルボー図: クラスタ数と歪みのプロット
  • データ内のクラスタ数の目安を示します
Pythonで学ぶクラスタ分析

Pythonでのエルボー法

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Pythonで学ぶクラスタ分析

Pythonで学ぶクラスタ分析

エルボー法の留意点

  • 最適なk(クラスタ数)の目安にとどまります
  • いつも明確にkを特定できるとは限りません
  • 他の方法: 平均シルエット、ギャップ統計量
Pythonで学ぶクラスタ分析

次は演習です

Pythonで学ぶクラスタ分析

Preparing Video For Download...