Wie definiere ich die Anzahl der Cluster in K-means Clustering?

19

Gibt es eine Möglichkeit, die optimale Clusternummer zu ermitteln, oder sollte ich einfach andere Werte ausprobieren und die Fehlerraten überprüfen, um den besten Wert zu ermitteln?

Berkay
quelle
1
@berkay Wie definieren Sie eine Fehlerrate für diese unbeaufsichtigte Methode? (oder meinst du die in SS?)
chl
@chl, ich kann die Summe der Fehlerquadrate für alle Cluster oder die Gesamtgenauigkeit verwenden (in diesem Fall kenne ich die Klassenbezeichnungen.)
Berkay
3
@berkay Ein einfacher Algorithmus zum Ermitteln der Anzahl der Cluster besteht darin, die durchschnittliche WSS für 20 Durchläufe von k-Mitteln auf einer zunehmenden Anzahl von Clustern (beginnend mit 2 und endend mit 9 oder 10) zu berechnen und die Lösung beizubehalten, die es gibt minimaler WSS über diesen Cluster gesetzt. Eine andere Methode ist die Gap-Statistik . Aber wenn Sie bereits Instanzen markiert haben, warum versuchen Sie dann eine unbeaufsichtigte Methode?
Chl
@chl danke, gute Frage, wir können die Cluster je nach Merkmalen der Absichten erraten, ich analysiere die neuen Einbruchsmerkmale, Mimikry von rechtlichen Anwendungen.
Berkay
2
Ich habe eine ähnliche Frage mit einem halben Dutzend Methoden (unter Verwendung von R) hier beantwortet
Ben

Antworten:

8

Als Methode verwende ich CCC (Cubic Clustering Criteria). Ich suche, dass der CCC auf ein Maximum ansteigt, wenn ich die Anzahl der Cluster um 1 erhöhe, und beobachte dann, wann der CCC zu sinken beginnt. An diesem Punkt nehme ich die Anzahl der Cluster am (lokalen) Maximum. Dies ähnelt der Verwendung eines Geröllplots zum Auswählen der Anzahl der Hauptkomponenten.


SAS-Technischer Bericht A-108 Cubic Clustering Criterion ( pdf )

= Anzahl der Beobachtungen n k = Anzahl im Cluster k p = Anzahl der Variablen q = Anzahl der Cluster X = n × p Datenmatrix M = q × p Matrix des Clusters bedeutet Z = Clusterindikator ( z i k = 1 wenn obs . i in Cluster k , sonst 0) n
nkk
p
q
Xn×p
Mq×p
Zzik=1ik

Angenommen, jede Variable hat den Mittelwert 0:
, M = ( Z ' Z ) - 1 Z ' XZZ=diag(n1,,nq)M=(ZZ)1ZX

(Gesamt) matrix = T = X ' X S S (zwischen Clustern) matrix = B = M ' Z ' Z M S S (innerhalb von Clustern) matrix = W = T - BSSTXX
SSBMZZM
SSWTB

(trace = Summe der diagonalen Elemente)R2=1trace(W)trace(T)

Stapeln Sie die Spalten von in eine lange Spalte. Regression auf Kronecker-Produkt von Z mit p × p- Identitätsmatrix Berechnen Sie R 2 für diese Regression - dasselbe R 2X
Zp×p
R2R2

Die CCC-Idee besteht darin, das Sie für eine bestimmte Menge von Clustern erhalten, mit dem R 2 zu vergleichen, das Sie erhalten würden, wenn Sie eine gleichmäßig verteilte Menge von Punkten im p- dimensionalen Raum gruppieren .R2R2p

Ralph Winters
quelle
2
Neben CCC gibt es noch andere Kriterien. Schauen Sie sich die Anzahl der Cluster in einem Datensatz an , um die wichtigsten zu sehen.
Vincent Labatut