2016-07-12 11 views
0

Pythons k-Mittel macht eine bestimmte Anzahl von Iterationen (n_init), um die beste Ausgabe des Algorithmus in Bezug auf Trägheit zu finden. Ich weiß, wie k-means funktioniert, aber meine Frage ist: Wie wird die beste Leistung gemessen? Anzahl der erforderlichen Iterationen bis zur Konvergenz? Was ist mit Trägheitsmomenten gemeint?Wie misst Python scikit die "beste Ausgabe" für k-bedeutet

Antwort

0

The documentation states daß das k-means-Algorithmus n_init Zeit ausgeführt wird, und dann der erzielten Ergebnisse es die eine mit minimalen Trägheitszurückgibt:

n_init: int, default: 10

Anzahl der Zeit, um die Der K-Means-Algorithmus wird mit verschiedenen Centroid-Seeds ausgeführt. Die Endergebnisse werden die beste Ausgabe von n_init aufeinander folgenden Läufen in Bezug auf die Trägheit sein.

Trägheit in this documentation page definiert und bedeutet einfach, die innerhalb-cluster sum-of-Squares, d.h. es bedeutet, zu berechnen, dass es die Cluster zurück, die kompakten unter dem einem Fund sind.

Insbesondere heißt es:

Der k-means-Algorithmus teilt eine Reihe von N Proben X in K disjunkten Clustern C, beschrieben jeweils durch die mittlere μ j von den Proben in dem Cluster. Die Mittel werden üblicherweise als Cluster Zentroide; Beachten Sie, dass sie im Allgemeinen keine Punkte von X sind, obwohl sie im selben Raum leben. Die K-Means-Algorithmus zu Ziel Centroide wählen, die die Trägheit minimieren, oder in-Cluster Summe von squared Kriterium:

i=0 to n minμj ∈ C(||xj - μi||2)

Inertia, oder die in-Cluster Summe von Kriterium Quadraten, kann anerkannt als Maß dafür, wie intern kohärente Cluster sind. Es leidet an verschiedenen Nachteilen:

  • Inertia macht die Annahme, dass Cluster sind konvex und isotrop, was nicht immer der Fall ist. Es reagiert schlecht auf langgestreckte Cluster oder Mannigfaltigkeiten mit unregelmäßigen Formen.
  • Trägheit ist keine normalisierte Metrik: Wir wissen nur, dass niedrigere Werte besser sind und Null ist optimal. Aber in sehr hochdimensionalen Räumen neigen euklidische Abstände dazu, sich aufzublasen (dies ist ein Beispiel für der sogenannte "Fluch der Dimensionalität"). Das Ausführen einer Dimensionalität Reduzierungsalgorithmus wie PCA vor k-Means Clustering kann dieses Problem beheben und die Berechnungen beschleunigen.
+0

Vielen Dank! Eine zusätzliche Frage: "... beachte, dass sie im Allgemeinen keine Punkte von X sind", was bedeutet, dass es sehr unwahrscheinlich ist, dass ein Schwerpunkt und eine Stichprobe X gleich sind? –

+0

@JoaoM Ja, im Allgemeinen, wenn Sie von Ihren Datenpunkten probieren, finden Sie nicht die Zentroide. – Bakuriu