Ich habe gelesen, dass der k-means-Algorithmus nur zu einem lokalen Minimum und nicht zu einem globalen Minimum konvergiert. Warum ist das? Ich kann mir logischerweise vorstellen, wie sich die Initialisierung auf das endgültige Clustering auswirken könnte, und es besteht die Möglichkeit eines suboptimalen Clusterings, aber ich habe nichts gefunden, was dies mathematisch beweisen könnte.
Warum ist k-ein iterativer Prozess? Können wir die Zielfunktion nicht nur teilweise von den Zentroiden unterscheiden, sie mit Null gleichsetzen, um die Zentroiden zu finden, die diese Funktion minimieren? Warum müssen wir den Gradientenabstieg verwenden, um Schritt für Schritt das Minimum zu erreichen?
clustering
k-means
convergence
gradient-descent
minimum
Prateek Kulkarni
quelle
quelle
Antworten:
Sie können k-means als eine spezielle Version des EM-Algorithmus sehen, die ein wenig helfen kann.
Angenommen, Sie schätzen eine multivariate Normalverteilung für jeden Cluster, wobei die Kovarianzmatrix für alle, aber den variablen Mittelwert an die Identitätsmatrix gebunden ist, wobei i der Index des Clusters ist. Wenn die Parameter { μ i } bekannt sind, können Sie jedem Punkt p seinen Maximum-Likelihood-Cluster zuweisen (dh den μ i, für den der Abstand zu p minimal ist). Der EM-Algorithmus für dieses Problem ist fast äquivalent zu k-means.μich ich { μich} p μich p
Umgekehrt können Sie, wenn Sie wissen, welche Punkte zu welchem Cluster gehören, das optimale schätzen . Die geschlossene Form Lösung dieses Problems (der ein globales Optimum findet) sagt im Grunde , dass die Maximum - Likelihood - Modelle finden { μ i } Sie alle möglichen Zuordnungen von Punkten zu Clustern integrieren über. Da es bereits mit dreißig Punkten und zwei Clustern etwa eine Milliarde solcher möglichen Zuordnungen gibt, ist dies nicht kalkulierbar.μich { μ^ich}
Stattdessen können wir die versteckten Parameter (oder die Modellparameter) erraten und die beiden Schritte durchlaufen (mit der Möglichkeit, in einem lokalen Maximum zu landen). Wenn Sie jedem Cluster erlauben, eine Teilverantwortung für einen Punkt zu übernehmen, erhalten Sie EM. Wenn Sie nur den optimalen Cluster zuweisen, erhalten Sie k-means.
Zusammenfassung: In probabilistischer Hinsicht gibt es eine globale Lösung, für die Sie jedoch alle möglichen Cluster durchlaufen müssen. Wenn Sie eine objektive Funktion haben, gilt dies natürlich auch. Sie könnten alle Lösungen durchlaufen und die Zielfunktion maximieren, aber die Anzahl der Iterationen ist in Bezug auf die Größe Ihrer Daten exponentiell.
quelle
Dies ist das Problem, das Sie lösen möchten:
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 j ich j pich cj ich j Rd d
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 jj xich 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:
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:
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 j yj yj xich j yj
quelle
Ein einfaches Beispiel könnte helfen ..
Definieren wir die Menge der zu gruppierenden Punkte als
A = {1,2,3,4}
.Angenommen, Sie suchen nach 2 geeigneten Clustern für A (2 Mittelwerte). Es gibt (mindestens) zwei verschiedene Einstellungen, die die stationäre Bedingung von k-means erfüllen.
Einstellung 1:
Hier ist das Ziel 2. In der Tat ist dies ein Sattelpunkt (versuchen
center1 = 1 + epsilon
undcenter1 = 1 - epsilon
)Einstellung 1:
hier ist das Ziel 1/4.
Wenn k-means als erste Einstellung initialisiert würde, würde es stecken bleiben, und das ist keineswegs ein globales Minimum.
Sie können eine Variante des vorherigen Beispiels verwenden, um zwei verschiedene lokale Minima zu erstellen. Für
A = {1,2,3,4,5}
, Einstellungcluster1={1,2}
undcluster2={3,4,5}
würde Ergebnisse in dem gleichen objektiven Wert wiecluster1={1,2,3}
undcluster2={4,5}
Schließlich, was würde passieren, wenn Sie sich entscheiden
vs
?
quelle
[Dies war, bevor @Peter geantwortet hat]
Nach einer kleinen Diskussion (im Kommentarbereich) habe ich das Gefühl, meine eigene Frage beantworten zu müssen.
Ich glaube, wenn ich die objektive Funktion in Bezug auf einen Schwerpunkt teilweise differenziere, verschwinden die Punkte im Cluster eines anderen Schwerpunkts in der Ableitung. Der Schwerpunkt, den wir erhalten können, minimiert also nur die Summe der quadratischen Abstände nur des bestimmten Clusters.
@whuber fügt hinzu:
Es wäre fantastisch, wenn jemand mehr hinzufügen könnte.
quelle
Jeder hat alles erklärt, aber ich möchte hinzufügen, dass wenn Beispieldaten nicht als Gauß-Verteilung verteilt werden, sie sich an ein lokales Minimum halten können. Im K-Means-Algorithmus versuchen wir tatsächlich, das zu bekommen.
quelle