Dies ist das Problem, das Sie lösen möchten:
Mindestx∑i = 1n∑j = 1kxich j| | pich- cj| |2unterliegen:∑j = 1kxich j= 1∀ ichcj ist der Schwerpunkt von Cluster jxich j∈ { 0 , 1 }∀ i , j
Die Binärvariable gibt an, ob Punkt dem Cluster zugeordnet ist oder nicht . Die Symbole und bezeichnen die Koordinaten des ten Punkts bzw. des Schwerpunkts des ten Clusters. Sie befinden sich beide in , wobei die Dimensionalität von Datenpunkten ist. i j p i c j i j R d dxich jichjpichcjichjRdd
Die erste Gruppe von Bedingungen besagt, dass jeder Punkt genau einem Cluster zugeordnet werden sollte. Die zweite Gruppe von Bedingungen (die wir nicht mathematisch definiert haben) besagt, dass die Koordinaten des Schwerpunkts des Clusters tatsächlich von den Werten der Variablen abhängen . Wir können diese Einschränkung zum Beispiel folgendermaßen ausdrücken:
x i j c j = ∑ i x i j p i jjxich j
cj= ∑ichxich jpich j∑ichxich j
Anstatt sich jedoch mit diesen nichtlinearen Einschränkungen zu befassen, lösen wir in K-Means (ungefähr) ein anderes Problem, das die gleiche optimale Lösung hat wie unser ursprüngliches Problem:
Mindestx∑i = 1n∑j = 1kxich j| | pich- yj| |2unterliegen:∑j = 1kxich j= 1∀ ichxich j∈ { 0 , 1 }∀ i , jyj∈ Rd∀ j
Anstatt den Abstand zu Zentroiden zu minimieren, minimieren wir den Abstand zu einer beliebigen Anzahl von Punkten, um eine bessere Lösung zu erzielen. Es stellt sich heraus, dass diese Punkte genau die Schwerpunkte sind.
Um dieses Problem zu lösen, wiederholen wir die Schritte 2-3 dieses Algorithmus bis zur Konvergenz:
- Variablen einige Werte zuyj
- Korrigieren Sie die Werte für die Variablen und finden Sie die optimalen Werte für die Variablen .yjxich j
- Korrigieren Sie die Werte der Variablen und ermitteln Sie die optimalen Werte für die Variablen .xich jyj
In jedem Schritt verbessert sich die Zielfunktion (oder bleibt dieselbe, wenn der Algorithmus konvergiert), da sich die im vorherigen Schritt gefundene Lösung im Suchraum des aktuellen Schritts befindet. Da wir jedoch einige der Variablen in jedem Schritt korrigieren, handelt es sich um ein lokales Suchverfahren, das keine Optimalität garantiert.
Glücklicherweise können die Optimierungsprobleme in Schritt 2 und 3 in geschlossener Form gelöst werden. Wenn wir
(dh, wenn wir wissen, welchem Cluster jeder Punkt zugeordnet ist), sind die Schwerpunkte der Cluster die besten Werte für Variablen. Wenn wir Werte für , ist es offensichtlich die beste Wahl für , jeden Punkt dem nächsten . xich jyjyjxich jyj