2017-11-14 10 views
-1

1D 배열에 1000 개의 요소가있는 모양 [1000,]이있는 일부 데이터가 있습니다. 이 데이터에 대해 k- 평균 클러스터링을 10의 클러스터로 적용했습니다. k-means를 적용한 후 각 클러스터에 대해 모양 [1000,] 및 도형 [10,]의 중심을 가진 클러스터 레이블 (id)을 얻었습니다. labels 배열은 0에서 9 사이의 값을 1000 개의 요소 각각에 할당합니다. 그러나 각 요소가 클러스터 ID보다 중심을 표시하도록합니다. 이것을 어떻게 할 수 있습니까?k-means를 사용하여 도심을 추출하는 것은 파이썬에서 클러스터링을 의미합니까?

from sklearn.cluster import KMeans 
kmeans = KMeans(n_clusters=10) 
kmeans.fit(data) #data is of shape [1000,] 
#learn the labels and the means 
labels = kmeans.predict(data) #labels of shape [1000,] with values 0<= i <= 9 
centroids = kmeans.cluster_centers_ #means of shape [10,] 

위의 코드에서 클러스터 ID가 아닌 [1000,] 배열의 각 요소에 대해 각각의 무게 중심을 원합니다.

답변

2

보인다.

centroid_labels = [centroids[i] for i in labels] 
+0

으로 해결됩니다. 고마워 +1 그것에 대한 upvote – Sansk

0

그냥 조회 테이블로 centroids 배열을 사용 : 목록 이해가 잘 작동하는 것처럼

samplesCentroids = centroids[labels]