Ich habe gelernt, dass Sie bei der Auswahl einer Reihe von Clustern nach einem Ellbogenpunkt für verschiedene Werte von K suchen sollten. Ich habe die Werte von withinss für Werte von k von 1 bis 10 geplottet, sehe aber kein klares Ellbogen. Was machst du in so einem Fall?
clustering
k-means
Jeremy
quelle
quelle
Antworten:
Falsche Methode?
Möglicherweise verwenden Sie den falschen Algorithmus für Ihr Problem.
Falsche Vorverarbeitung?
K-means reagiert sehr empfindlich auf Vorverarbeitung. Wenn ein Attribut viel größer ist als die anderen, dominiert es die Ausgabe. Ihre Ausgabe wird dann effektiv eindimensional sein
Ergebnisse visualisieren
Was auch immer Sie tun, Sie müssen Ihre Ergebnisse durch etwas anderes validieren als mit einer Zahl wie SSQ zu beginnen. Betrachten Sie stattdessen Visualisierung .
Die Visualisierung kann Ihnen auch mitteilen, dass sich möglicherweise nur ein einziger Cluster in Ihren Daten befindet.
quelle
Eine Möglichkeit besteht darin, die Mitglieder in Ihren Clustern manuell auf ein bestimmtes k zu untersuchen, um festzustellen, ob die Gruppierungen sinnvoll sind (sind sie unterscheidbar?). Dies kann über Kontingenztabellen und bedingte Mittel erfolgen. Tun Sie dies für eine Vielzahl von k, und Sie können bestimmen, welcher Wert angemessen ist.
Ein weniger subjektiver Weg ist die Verwendung des Silhouette-Werts:
/programming/18285434/how-do-i-choose-k-when-using-k-means-clustering-with-silhouette-function
Dies kann mit Ihrem bevorzugten Softwarepaket berechnet werden. Über den Link:
Diese Methode vergleicht nur die gruppeninterne Ähnlichkeit mit der nächsten Gruppenähnlichkeit. Wenn die durchschnittliche Entfernung eines Datenelements zu anderen Mitgliedern desselben Clusters höher ist als die durchschnittliche Entfernung zu anderen Clustermitgliedern, ist dieser Wert negativ und die Clusterbildung ist nicht erfolgreich. Silhuette-Werte nahe 1 weisen dagegen auf einen erfolgreichen Clustering-Vorgang hin. 0,5 ist kein genaues Maß für die Clusterbildung.
quelle
contingency tables and conditional means
Das ist weiter mystisch. Was soll ich damit machen, um "subjektiv" zu einem guten k zu gelangen?Im Allgemeinen können Sie Folgendes in Betracht ziehen:
quelle
Wir können das NbClust-Paket verwenden, um den optimalsten Wert von k zu finden. Es bietet 30 Indizes zur Bestimmung der Anzahl der Cluster und schlägt das beste Ergebnis vor.
NbClust (data = df, distance = "euclidean", min.nc = 2, max.nc = 15, method = "kmeans", index = "all")
quelle