Python: k-meansのクラスタ数を決定するためにSSE値を図示 - Fuwafuwa's memorandum

Fuwafuwa's memorandum

Data analysis, development, reading, daily feeling.
MENU

Python: k-meansのクラスタ数を決定するためにSSE値を図示

ネットをふわふわしていたら懐かしい図を見つけたのでコピペ。
k-meansの最適なクラスター数を調べる方法

import pandas as pd

data = pd.read_csv('file_name.csv')

##クラスタリングに必要なカラムのみarrayに
d_history = data.iloc[:,7:20]
d_history_array = d_history.as_matrix()

from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

distortions = []
for i  in range(1,11):                # 1~10クラスタまで一気に計算 
    km = KMeans(n_clusters=i,
                init='k-means++',     # k-means++法によりクラスタ中心を選択
                n_init=10,
                max_iter=300,
                random_state=0)
    km.fit(d_history_array)                         # クラスタリングの計算を実行
    distortions.append(km.inertia_)   # km.fitするとkm.inertia_が得られる

plt.plot(range(1,11),distortions,marker='o')
plt.xlabel('Number of clusters')
plt.ylabel('Distortion')
plt.show()
Pythonでエルボー図書いてる人はじめて見た。

Leave a reply






管理者にだけ表示を許可する

該当の記事は見つかりませんでした。