Die Antwort von Sergey enthält den kritischen Punkt, nämlich, dass der Silhouettenkoeffizient die Qualität der erreichten Clusterung quantifiziert. Wählen Sie daher die Anzahl der Cluster aus, die den Silhouettenkoeffizienten maximieren.
Die lange Antwort lautet, dass die beste Methode zur Bewertung der Ergebnisse Ihrer Clusterbemühungen darin besteht, zunächst die gebildeten Cluster zu untersuchen und eine Entscheidung zu treffen, die auf dem Verständnis der Repräsentation der Daten und der Repräsentation eines Clusters basiert. und was das Clustering erreichen soll.
Es gibt zahlreiche quantitative Methoden zur Bewertung von Clustering-Ergebnissen, die als Hilfsmittel zum vollständigen Verständnis der Einschränkungen verwendet werden sollten. Sie sind in der Regel ziemlich intuitiv und haben daher eine natürliche Anziehungskraft (wie Clustering-Probleme im Allgemeinen).
Beispiele: Clustermasse / -radius / -dichte, Kohäsion oder Trennung zwischen Clustern usw. Diese Konzepte werden häufig kombiniert. Beispielsweise sollte das Verhältnis von Trennung zu Kohäsion groß sein, wenn die Clusterbildung erfolgreich war.
Die Art und Weise, wie das Clustering gemessen wird, hängt von der Art der verwendeten Clustering-Algorithmen ab. Beispielsweise kann die Qualität eines vollständigen Clustering-Algorithmus (bei dem alle Punkte zu Clustern zusammengefasst werden) stark von der Qualität eines schwellenwertbasierten Fuzzy-Clustering-Algorithmus abweichen (bei dem ein Punkt möglicherweise nicht als "Rauschen" geclustert wird). ).
Der Silhouettenkoeffizient ist ein solches Maß. Es funktioniert wie folgt:
Ermitteln Sie für jeden Punkt p zunächst den durchschnittlichen Abstand zwischen p und allen anderen Punkten im selben Cluster (dies ist ein Maß für die Kohäsion, nennen Sie es A). Bestimmen Sie dann die durchschnittliche Entfernung zwischen p und allen Punkten im nächsten Cluster (dies ist ein Maß für die Entfernung vom nächsten anderen Cluster, nennen Sie es B). Der Silhouettenkoeffizient für p ist definiert als die Differenz zwischen B und A geteilt durch den größeren der beiden (max (A, B)).
Wir werten den Clusterkoeffizienten jedes Punktes aus und daraus können wir den "gesamten" durchschnittlichen Clusterkoeffizienten erhalten.
Intuitiv versuchen wir, den Abstand zwischen Clustern zu messen. Wenn die Cluster-Kohäsion gut ist (A ist klein) und die Cluster-Trennung gut ist (B ist groß), ist der Zähler groß usw.
Ich habe hier ein Beispiel erstellt, um dies grafisch zu veranschaulichen.
In diesen Darstellungen sind die gleichen Daten fünfmal aufgezeichnet; Die Farben geben die durch k-means clustering gebildeten Cluster an, mit k = 1,2,3,4,5. Das heißt, ich habe einen Clustering-Algorithmus erzwungen, um die Daten in zwei Cluster, dann in drei usw. zu unterteilen, und das Diagramm entsprechend eingefärbt.
Das Silhouettendiagramm zeigt, dass der Silhouettenkoeffizient am höchsten war, wenn k = 3, was darauf hindeutet, dass dies die optimale Anzahl von Clustern ist. In diesem Beispiel haben wir das Glück, die Daten visualisieren zu können, und wir sind uns einig, dass tatsächlich drei Cluster die Segmentierung dieses Datensatzes am besten erfassen.
Wenn wir die Daten nicht visualisieren könnten, vielleicht wegen der höheren Dimensionalität, würde uns ein Silhouettenplot immer noch einen Vorschlag geben. Ich hoffe jedoch, dass meine etwas langatmige Antwort hier auch darauf hinweist, dass dieser "Vorschlag" in bestimmten Szenarien sehr unzureichend oder einfach falsch sein könnte.