Kmeans アルゴリズムは教師なしアルゴリズムです。
彼は大量のデータに基づいて自分がどのタイプに属するかを訓練しており、これは本質的には距離計算に相当します。
まず、分類された kmeans データセットを作成しましょう
from sklearn.datasets import make_blobs
X, y = make_blobs(n_samples=500,n_features=2,centers=4,random_state=1)
plt.scatter(X[:, 0], X[:, 1], marker='o')
color = ["red","pink","orange","gray"]
for i in range(4):
plt.scatter(X[y==i, 0], X[y==i, 1]
,marker='o'
,s=8
,c=color[i] )
plt.show()
sklearnを正式に導入して実践しましょう
from sklearn.cluster import KMeans
n_clusters = 3
cluster = KMeans(n_clusters=n_clusters, random_state=0).fit(X)
cluster.labels_
cluster.cluster_centers_
from sklearn.metrics import silhouette_score
from sklearn.metrics import silhouette_samples
import pandas as pd
score=[]
for i in range(2,100):
cluster= KMeans(n_clusters=i, random_state=0).fit(X)
score.append(silhouette_score(X,cluster.labels_))
plt.plot(range(2,100),score)
plt.axvline(pd.DataFrame(score).idxmin()[0]+2,ls=':')