0

Ich führte Scikit-lernen K-Means-Algorithmus und bekam die resultierenden Schwerpunkte. Ich habe ein neues Dokument (war nicht in der ursprünglichen Sammlung) und ich möchte den Abstand zwischen jedem Schwerpunkt und dem neuen Dokument berechnen, um zu wissen, in welchem ​​Cluster es platziert werden soll.Wie berechnet man den Abstand zwischen einem Dokument und jedem Schwerpunkt (k-Mittel)?

Gibt es eine eingebaute Funktion, um das zu erreichen oder sollte ich eine Ähnlichkeitsfunktion manuell schreiben?

Antwort

1

können Sie die Methode verwenden predict in einer Matrix, die am nächsten Cluster für jede Probe zu erhalten X:

from sklearn.cluster import KMeans 

model = KMeans(n_clusters=K) 
model.fit(X_train) 
label = model.predict(X_test) 
+0

Ich habe eine andere Frage, X_test Sparse Matrix sollte die gleiche Dimensionalität als X_train haben? Ich frage das, weil ich TF-IDF-Normalisierung verwende, also muss ich die X_train-Funktionen berücksichtigen, um die X_test-Matrix zu erzeugen – diugalde

+0

Es sollte die gleiche Anzahl von Merkmalen haben, aber nicht unbedingt die gleiche Anzahl von Samples. –

+0

Ich verstehe. Also muss ich das neue Beispiel zum ursprünglichen Wörterbuch hinzufügen, vectorizer.fit_transform() erneut verwenden und dann nur die gewünschte Zeile an die Vorhersage-Methode übergeben, richtig? – diugalde

Verwandte Themen