前提・実現したいこと
xmeans法を用いてワインのデータセットをクラスタリングしようとしています。
しかしクラスタリング結果が帯状になっていて結果がおかしいです。
また、クラスタリングの精度を見たいのでシルエット値の導入コードを教えていただけるとありがたいです。
発生している問題・エラーメッセージ
クラスタリング結果が帯状になり、おかしい。
該当のソースコード
Python
1import time 2import pyclustering 3from pyclustering.cluster import xmeans 4import numpy as np 5import matplotlib 6import matplotlib.pyplot as plt 7from sklearn import datasets, preprocessing 8# datasetの読み込み 9wine_data = datasets.load_wine() 10# DataFrameに変換 11df = pd.DataFrame(wine_data.data, columns=wine_data.feature_names) 12print(df.head()) 13X=df[["alcohol","magnesium"]] # yラベル , xラベル 14X.shape 15 16%%timeit 17initializer = pyclustering.cluster.xmeans.kmeans_plusplus_initializer(data=X, amount_centers=2) 18initial_centers = initializer.initialize() 19xm = xmeans.xmeans(data=X, initial_centers=initial_centers) 20xm.process() 21clusters = xm.get_clusters() 22pyclustering.utils.draw_clusters(data=X.values, clusters=clusters,) 23 24
補足情報(FW/ツールのバージョンなど)
Python 3.7.4 jupter notebook
あなたの回答
tips
プレビュー