2017-01-05 8 views
0

기사 클러스터링에 k-means를 사용하고 있으며 완벽하게 작동합니다. 이제 더 합리적인 결과를 얻기 위해 초기 센터를 정의하고 싶습니다.K-는 tf-idf 행렬의 초기 중심을 정의하는 것을 의미합니다.

내 파이썬 코드 :

tfidf_matrix = tfidf_vectorizer.fit_transform(articles) 
X = np.array([[-19.67480000, -8.546], 
      [22.010807000,-10.9737], 
      [11.959700000,19.2701], 
      [12.254700000, 11.2381], 
      [16.649700000,-15.2251], 
      [19.859700000, 13.2601]] , np.float64) 
km = KMeans(n_clusters=6,init=X, n_init=1).fit(tfidf_matrix) 

나는 초기의 무게 중심을 정의하기 위해 노력하고, 나는 다음과 같은 오류 얻을 : 나는 차원이 있다는 생각을 오류에서

ValueError: The number of features of the initial centers 2 does not match the number of features of the data 4602. 

을 동등하지 않다. 스파 스 매트릭스의 크기를 만족시키기 위해 초기 중심을 어떻게 변환 할 수 있습니까?

+0

'tfidf_matrix'의 모양은 무엇입니까? – gntoni

+0

모든 실행마다 변경됩니다. 하지만 당신은 내가 마지막으로 다음과 같이 도와 줄 수 있습니다 : (1111, 8262) – zzai

답변

0

무게 중심의 지형지 물의 수는 데이터 지형지 물의 수와 같아야합니다.

귀하의 입력 데이터 (tfidf_matrix)는 (1111, 8262) 즉, 8262 개의 기능이있는 1111 개의 샘플입니다. 그러면 6 개의 무게 중심에는 8262 개의 기능이 있어야합니다. X의 모양은 (6,8262)이어야합니다.

+0

좋아요,하지만 제 질문은 어떻게 변환 할 수 있습니까? – zzai