Welche Methode verwenden Sie für die Auswahl der optimalen Anzahl der Cluster beim k-means und EM?
Viele algorithmen für das clustering verfügbar sind. Ein beliebter Algorithmus ist der K-means-wo, basierend auf einer bestimmten Anzahl der Cluster, die der Algorithmus iteriert um die besten zu finden von Clustern für die Objekte.
Welche Methode sollten Sie verwenden, um zu bestimmen, die Anzahl der Cluster in den Daten der k-means-clustering?
Jedes package in R enthalten die V-fold cross-validation
Methode für die Bestimmung der richtigen Anzahl an Clustern?
Andere auch verwendete Ansatz ist der Expectation-Maximization (EM) Algorithmus, weist eine Wahrscheinlichkeitsverteilung für jede Instanz gibt die Wahrscheinlichkeit, dass es der Zugehörigkeit zu jedem der Cluster.
Ist dieser Algorithmus implementiert in R?
Wenn es ist, hat Sie die option, um automatisch die optimale Anzahl von Clustern, die durch cross-Validierung?
Bevorzugen Sie einige andere clustering-Methode statt?
- Ich habe absichtlich nicht in hierarchischen clustering weil hclust ist eine Recht Speicher hungrig Methode, nicht geeignet für große Datensätze, in denen ich bin eigentlich meistens interessiert.
- Bitte definieren, was du meinst, wenn du "optimal"
- Gute Frage @Svante, ich habe darüber nachgedacht eine Menge, dass man auf. Ich habe sogar gedacht, zu schreiben, ein Paket mit mehreren algorithmen für die optimale Anzahl von Clustern (hclust Methoden nur). @hadley, habe ich kennengelernt: C-H-index (Calinsky & Harabasz), C-index, Goodman-Kruskal-gamma-coef. und es gibt einen Weg, um "pick eine optimale cluster-Lösung", durch die Nutzung der F-test. Hier ist ein ref: Miligan, G. W. & Cooper, M. C. (1985). Eine Untersuchung von Verfahren zur Bestimmung der Anzahl der Cluster in einem Datensatz, Psychometrika, 50, 159-179, Obwohl ich davon ausgehe, dass Sie lieber "graph-based" - Entscheidung über die optimale Lösung...
- im Sinne der Maximierung einige score-Funktion, die als Argumente die vielleicht
between class distance
und diewithin class distance
. Siehe zum Beispiel die Methode, beschrieben in paragraphOptimal Number of Clusters
hier: sandro.saitta.googlepages.com/... - Dies kann auch nützlich sein: stats.stackexchange.com/questions/723/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für große "sparse" Datensätze ich würde ernsthaft empfehlen, die "Affinity propagation" - Methode.
Es hat eine überlegene Leistung im Vergleich zu k und es ist deterministisch in der Natur.
http://www.psi.toronto.edu/affinitypropagation/
Es wurde veröffentlicht in der Zeitschrift "Science".
Jedoch die Wahl der optimalen clustering-Algorithmus in Abhängigkeit von den Daten festgelegt, die unter Berücksichtigung. K-Means ist ein text-Buch-Methode und es ist sehr wahrscheinlich, dass man entwickelt hat, einen besseren Algorithmus besser geeignet für Ihre Art von Datensatz/
Dies ist eine gute Anleitung von Prof. Andrew Moore (CMU, Google), die auf K-Means und Hierarchisches Clustering.
http://www.autonlab.org/tutorials/kmeans.html
Letzte Woche habe ich codiert, bis eine solche Schätzung-die-Anzahl-der-Cluster-Algorithmus für das K-Means-clustering-Programm. Ich benutzte die Methode beschrieben in:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.9687&rep=rep1&type=pdf
Meine größte Implementierung problem war, dass ich hatte finden Sie einen geeigneten Cluster-Index (ie-Fehler-Metrik), die funktionieren würde. Jetzt ist es eine Frage der Geschwindigkeit der Bearbeitung, aber die Ergebnisse derzeit Aussehen vernünftig.