1

各クラスタに属する最も外側の点まで半径を持つ各重心の周りに円を描こうとしています。今の私の円は半径がここでクラスタ中心から全体のトレーニングデータセットの遠いにポイントにKMeansクラスタによってグループ化されたデータに効率的にアクセスする

を延長して描かれている私のコードです:

def KMeansModel(n): 
    pca = PCA(n_components=2) 
    reduced_train_data = pca.fit_transform(train_data) 
    KM = KMeans(n_clusters=n) 
    KM.fit(reduced_train_data) 
    plt.plot(reduced_train_data[:, 0], reduced_train_data[:, 1], 'k.', markersize=2) 
    centroids = KM.cluster_centers_ 
    # Plot the centroids as a red X 
    plt.scatter(centroids[:, 0], centroids[:, 1], 
       marker='x', color='r') 
    for i in centroids: 
     print np.max(metrics.pairwise_distances(i, reduced_train_data)) 
     plt.gca().add_artist(plt.Circle(i, np.max(metrics.pairwise_distances(i, reduced_train_data)), fill=False)) 
    plt.show() 

out = [KMeansModel(n) for n in np.arange(1,16,1)] 

答えて

2

あなたは

metrics.pairwise_distances(i, reduced_train_data) 

を行うときは、そのクラスからの訓練ポイントだけでなく、すべての訓練ポイントからの距離を計算する。クラスindに対応したトレーニングデータからの点の位置を見つけるために、あなたがforループ内で、このように

np.where(KM.labels_==ind)[0] 

を行うことができます

for i in centroids: 

あなたはトレーニングのポイントにアクセスする必要があります特定のクラスから。これは仕事を行います。

from sklearn.decomposition import PCA 
from sklearn.cluster import KMeans 
from sklearn import metrics 
import matplotlib.pyplot as plt 
import numpy as np 

def KMeansModel(n): 
    pca = PCA(n_components=2) 
    reduced_train_data = pca.fit_transform(train_data) 
    KM = KMeans(n_clusters=n) 
    KM.fit(reduced_train_data) 
    plt.plot(reduced_train_data[:, 0], reduced_train_data[:, 1], 'k.', markersize=2) 
    centroids = KM.cluster_centers_ 
    # Plot the centroids as a red X 
    plt.scatter(centroids[:, 0], centroids[:, 1], 
       marker='x', color='r') 
    for ind,i in enumerate(centroids): 
     class_inds=np.where(KM.labels_==ind)[0] 
     max_dist=np.max(metrics.pairwise_distances(i, reduced_train_data[class_inds])) 
     print(max_dist) 
     plt.gca().add_artist(plt.Circle(i, max_dist, fill=False)) 
    plt.show() 

out = [KMeansModel(n) for n in np.arange(1,16,1)] 

そしてここで私は、コードを使用して取得する人物の一人である:

enter image description here

関連する問題