2017-01-05 1 views
0

Ich verwende k-means zum Clustering von Artikeln und es funktioniert perfekt. Jetzt möchte ich Anfangszentren definieren, um bessere Ergebnisse zu erzielen.K- bedeutet, dass die Anfangspunkte für die tf-idf-Matrix definiert werden

Mein Python-Code:

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) 

wenn ich anfängliche Zentroide zu definieren versuchen, erhalte ich folgende Fehlermeldung:

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

Vom Fehler erhalte ich die Idee, dass die Dimensionen nicht gleich. Wie kann ich meine ursprünglichen Zentren transformieren, um die Dimensionen der dünn besetzten Matrix zu erfüllen?

+0

Wie ist die Form von 'tfidf_matrix'? – gntoni

+0

Es ändert sich bei jedem Lauf. Aber du kannst mir nach dem letzten helfen, der war: (1111, 8262) – zzai

Antwort

0

Die Anzahl der Features in den Schwerpunkten sollte der Anzahl der Features in den Daten entsprechen.

Ihre Eingabedaten (tfidf_matrix) sind (1111, 8262), d. H. 1111 Stichproben mit 8262 Merkmalen. Dann sollten Ihre 6 Zentroide auch 8262 Funktionen haben. Die Form von X sollte (6,8262) sein.

+0

Okay, aber meine Frage ist, wie kann ich X transformieren? – zzai

Verwandte Themen