KMeansは簡単で強力な教師なし学習(クラスタリング)の手法だ。簡単に実装できるし、アルゴリズムも理解しやすい。
もともと2次元の(カラム数が2の)データをクラスタリングした結果は、散布図を描き、クラスタリング結果ごとに色や形を変えることで簡単に確認できるだろう。
それでは、3次元以上のデータをクラスタリングした結果を確認するにはどうしたら良いだろうか。
主成分分析(PCA)によって、多数変数を2変数に圧縮し、その2変数を用いて散布図を描き直せば良い。
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
df_pca = pd.DataFrame(pca.fit_transform(df)) # データフレームdfを2次元に圧縮
df_pca.columns = ["PC1", "PC2"]
# 散布図の描画
fig, ax= plt.subplots(figsize=[15,15])
ax.scatter(df_pca["PC1"], df_pca["PC2"])
ax.set_xlabel('PC 1')
ax.set_ylabel('PC 2')
ax.set_xlim(-10000, 30000) # x軸、y軸の範囲は揃えておく
ax.set_ylim(-10000, 30000)
plt.show()
plt.clf()
0 コメント