Verständnis "score" zurück, die von scikit-learn KMeans
Bewarb ich mich clustering auf eine Reihe von text-Dokumente (über 100). Ich konvertiert Sie zu Tfidf
Vektoren mit TfIdfVectorizer
und versorgt die Vektoren als Eingabe für scikitlearn.cluster.KMeans(n_clusters=2, init='k-means++', max_iter=100, n_init=10)
. Wenn ich jetzt
model.fit()
print model.score()
auf meine Vektoren, bekomme ich einen sehr kleinen Wert, wenn der ganze text-Dokumente sind sehr ähnlich, und ich bekomme einen sehr großen negativen Wert, wenn die Dokumente sind sehr unterschiedlich.
Es dient meinen grundlegenden Zweck der Feststellung, welche Dokumente ähnlich sind, aber kann mir jemand helfen zu verstehen, was genau bedeutet dies model.score()
Wert bedeuten, die für einen passen? Wie kann ich diesen Wert verwenden, um zu rechtfertigen, meine Erkenntnisse?
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der Dokumentation heißt es:
Zu verstehen, was das bedeutet, dass Sie brauchen, um einen Blick auf das k-means-Algorithmus. Was k-means-im wesentlichen tut, ist, finden cluster-Zentren, die Minimierung der Summe der Abstände zwischen Daten-samples und Ihrer zugehörigen cluster-Zentren.
Es ist ein zwei-Schritt-Prozess, bei dem (a) jede Daten-sample zugeordnet ist, um den nächsten cluster-Zentrum, (b) cluster-Zentren angepasst sind, liegen in der Mitte alle Proben sind. Diese Schritte werden wiederholt, bis ein Kriterium (max Iterationen /min Veränderung zwischen den letzten zwei Iterationen) erfüllt ist.
Wie Sie sehen können, es bleibt ein Abstand zwischen Daten-samples und Ihrer zugehörigen cluster-Zentren und die Ziel unserer Minimierung ist, dass die Distanz (Summe aller Strecken).
Sie bekommen natürlich große Entfernungen, wenn man eine sehr große Auswahl in Stichproben von Daten, wenn die Anzahl der Daten-Proben ist deutlich höher als die Anzahl der Cluster, die in Ihrem Fall nur zwei. Im Gegenteil, wenn alle Daten Proben waren die gleichen, Sie würden immer einen null-Abstand, unabhängig von der Anzahl der Cluster.
Aus den Unterlagen, die ich erwarten würde, dass alle Werte negativ sind, obwohl. Wenn Sie beobachten, sowohl negative als auch positive Werte, vielleicht gibt es mehr auf das Ergebnis als das.
Frage ich mich, wie du auf die Idee gekommen ist, das clustering in zwei Cluster, obwohl.
ypnos ist richtig, Sie finden können einige Details hier:
https://github.com/scikit-learn/scikit-learn/blob/51a765a/sklearn/cluster/k_means_.py#L893
Das Wort gewählt, indem die Dokumentation ist ein bisschen verwirrend.
Es sagt "Gegenteil der Wert von X auf der K-means-Ziel."
Es bedeutet, negativ von der K-means-Ziel.
K-Means-Ziel
Das Ziel der K-means ist die Verringerung der Summe der Quadrate der Entfernungen der Punkte von den jeweiligen cluster-centroide. Es hat andere Namen, wie J-Squared-error-Funktion, J-score oder within-cluster sum of squares. Dieser Wert sagt, wie stimmig die Cluster sind. (Je weniger, desto besser)
model.inertia_