Es ist richtig, dass K-means Clustering und PCA sehr unterschiedliche Ziele zu haben scheinen und auf den ersten Blick nicht miteinander verwandt zu sein scheinen. Wie in der Veröffentlichung von Ding & He aus dem Jahr 2004 erläutert , besteht jedoch eine tiefe Verbindung zwischen K-means Clustering über die Hauptkomponentenanalyse .
Die Intuition ist, dass PCA versucht, alle Datenvektoren als Linearkombinationen einer kleinen Anzahl von Eigenvektoren darzustellen , und den mittleren quadratischen Rekonstruktionsfehler minimiert. Im Gegensatz dazu versucht K-means, alle Datenvektoren über eine kleine Anzahl von Clusterzentroiden darzustellen, dh sie als lineare Kombinationen einer kleinen Anzahl von Clusterzentroidvektoren darzustellen, wobei die linearen Kombinationsgewichte mit Ausnahme der einzelnen alle Null sein müssen . Dies geschieht auch, um den Rekonstruktionsfehler im mittleren Quadrat zu minimieren.n 1nn1
K-means kann also als superdünne PCA angesehen werden.
Was Ding & He Papier tut, ist es, diesen Zusammenhang genauer zu machen.
Leider enthält das Ding & He-Papier (bestenfalls) einige schlampige Formulierungen und kann leicht missverstanden werden. Zum Beispiel könnte es scheinen, dass Ding & He behauptet haben, dass Cluster-Schwerpunkte der K-Mittelwert-Cluster-Lösung im -dimensionalen PCA-Unterraum liegen:(K−1)
Satz 3.3. Der Cluster-Schwerpunkt-Unterraum wird von den ersten Hauptrichtungen [...] überspannt
.K−1
Für würde dies bedeuten, dass die Projektionen auf der PC1-Achse für einen Cluster negativ und für einen anderen Cluster positiv sind, dh die PC2-Achse trennt die Cluster perfekt.K=2
Dies ist entweder ein Fehler oder ein schlampiges Schreiben. In jedem Fall ist diese Behauptung wörtlich genommen falsch.
Beginnen wir mit der Betrachtung einiger Spielzeugbeispiele in 2D für . Ich habe einige Samples aus den beiden Normalverteilungen mit der gleichen Kovarianzmatrix aber unterschiedlichen Mittelwerten generiert. Ich habe dann sowohl K-means als auch PCA ausgeführt. Die folgende Abbildung zeigt das Streudiagramm der obigen Daten und die gleichen Daten, die gemäß der nachstehenden K-Mittel-Lösung gefärbt sind. Ich zeige auch die erste Hauptrichtung als schwarze Linie und Klassenschwerpunkte, die mit K-Mitteln mit schwarzen Kreuzen gefunden wurden. Die PC2-Achse ist mit der gestrichelten schwarzen Linie dargestellt. K-means wurde mal mit zufälligen Samen wiederholt , um die Konvergenz zum globalen Optimum sicherzustellen.100K=2100
Man kann deutlich sehen, dass die Klassenschwerpunkte zwar der ersten PC-Richtung ziemlich nahe kommen, aber nicht genau darauf zutreffen. Auch wenn die PC2-Achse die Cluster in den Unterplänen 1 und 4 perfekt trennt, befinden sich in den Unterplänen 2 und 3 einige Punkte auf der falschen Seite.
Die Übereinstimmung zwischen K-means und PCA ist also ziemlich gut, aber nicht genau.
Was hat Ding & He also bewiesen? Der Einfachheit halber werde ich nur den Fall . Die Anzahl der jedem Cluster zugewiesenen Punkte sei und und die Gesamtanzahl der Punkte . Definieren wir nach Ding & He den Cluster-Indikatorvektor wie folgt: wenn Punkte zu Cluster 1 gehören und wenn es zu Cluster 2 gehört. Der Clusterindikatorvektor hat die Einheitslänge und ist "zentriert", dh seine Elemente summieren sich zu Null .n 1 n 2 n = n 1 + n 2 q ≤ R nK=2n1n2n=n1+n2 q∈Rnqi=n2/nn1−−−−−−√q i = - √iqi=−n1/nn2−−−−−−√∥q∥=1∑qi=0
Ding & He zeigen, dass die K- -Verlustfunktion (der K- -Algorithmus minimiert) äquivalent umgeschrieben werden kann als , wobei die Gramm-Matrix von Skalarprodukten zwischen allen Punkten ist: , wobei die Datenmatrix ist und ist die zentrierte Datenmatrix.∑k∑i(xi−μk)2−q⊤GqGn×nG=X⊤cXcXn×2Xc
(Hinweis: Ich verwende eine Schreibweise und Terminologie, die sich geringfügig von ihrer Arbeit unterscheidet, die ich jedoch klarer finde.)
Die K-Mittel-Lösung ist also ein zentrierter Einheitsvektor, der maximiert . Es ist leicht zu zeigen, dass die erste Hauptkomponente (wenn normalisiert, um eine Einheitssumme von Quadraten zu haben) der führende Eigenvektor der Gram-Matrix ist, dh es ist auch ein zentrierter Einheitsvektor maximiert . Der einzige Unterschied besteht darin, dass nur zwei unterschiedliche Werte haben darf, während diese Einschränkung nicht hat.qq⊤Gqpp⊤Gpqp
Mit anderen Worten, K-Mittel und PCA maximieren die gleiche Zielfunktion , mit dem einzigen Unterschied, dass K-Mittel eine zusätzliche "kategoriale" Einschränkung aufweist.
Es liegt auf der Hand, dass die K-Mittelwert-Lösung (eingeschränkt) und die PCA-Lösung (nicht eingeschränkt) in den meisten Fällen ziemlich nahe beieinander liegen, wie wir oben in der Simulation gesehen haben, aber man sollte nicht erwarten, dass sie identisch sind. Wenn Sie und alle negativen Elemente auf und alle positiven Elemente auf im Allgemeinen nicht genau .p−n1/nn2−−−−−−√n2/nn1−−−−−−√q
Ding & Er scheinen dies gut zu verstehen, weil sie ihren Satz wie folgt formulieren:
Satz 2.2. Für K-bedeutet Clustering mit ist die kontinuierliche Lösung des Clusterindikatorvektors die [erste] HauptkomponenteK=2
Beachten Sie die Wörter "kontinuierliche Lösung". Nach diesem Satz beweisen , kommentieren sie zusätzlich , dass PCA verwendet werden kann K-Means - Iterationen zu initialisieren , den vorgegebenen Gesamt Sinn macht , dass wir erwarten , dass nahe zu sein . Die Iterationen müssen jedoch noch durchgeführt werden, da sie nicht identisch sind.qp
Dann entwickelt Ding & He jedoch eine allgemeinere Behandlung für und formuliert am Ende Satz 3.3 alsK>2
Satz 3.3. Der Cluster-Schwerpunkt-Unterraum wird von den ersten Hauptrichtungen [...] überspannt
.K−1
Ich habe die Mathematik von Abschnitt 3 nicht durchgearbeitet, aber ich glaube, dass sich dieser Satz tatsächlich auch auf die "kontinuierliche Lösung" von K-means bezieht, dh seine Aussage sollte lauten "Cluster-Schwerpunktsraum der kontinuierlichen Lösung von K-means" überspannt [...] ".
Ding & He machen diese wichtige Qualifikation jedoch nicht und schreiben darüber hinaus in ihrer Zusammenfassung, dass
Hier beweisen wir, dass Hauptkomponenten die kontinuierlichen Lösungen für die diskreten Clustermitgliedschaftsindikatoren für K-Mittel-Clustering sind. Gleichermaßen zeigen wir, dass der von den Cluster-Centroiden aufgespannte Unterraum durch spektrale Expansion der bei Termen verkürzten Daten-Kovarianzmatrix gegeben ist .K−1
Der erste Satz ist absolut richtig, der zweite nicht. Es ist mir nicht klar, ob dies eine (sehr) schlampige Schrift oder ein echter Fehler ist. Ich habe beiden Autoren sehr höflich eine E-Mail mit der Bitte um Klarstellung gesendet. (Update zwei Monate später: Ich habe noch nie etwas von ihnen gehört.)
Matlab-Simulationscode
figure('Position', [100 100 1200 600])
n = 50;
Sigma = [2 1.8; 1.8 2];
for i=1:4
means = [0 0; i*2 0];
rng(42)
X = [bsxfun(@plus, means(1,:), randn(n,2) * chol(Sigma)); ...
bsxfun(@plus, means(2,:), randn(n,2) * chol(Sigma))];
X = bsxfun(@minus, X, mean(X));
[U,S,V] = svd(X,0);
[ind, centroids] = kmeans(X,2, 'Replicates', 100);
subplot(2,4,i)
scatter(X(:,1), X(:,2), [], [0 0 0])
subplot(2,4,i+4)
hold on
scatter(X(ind==1,1), X(ind==1,2), [], [1 0 0])
scatter(X(ind==2,1), X(ind==2,2), [], [0 0 1])
plot([-1 1]*10*V(1,1), [-1 1]*10*V(2,1), 'k', 'LineWidth', 2)
plot(centroids(1,1), centroids(1,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(1,1), centroids(1,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot(centroids(2,1), centroids(2,2), 'w+', 'MarkerSize', 15, 'LineWidth', 4)
plot(centroids(2,1), centroids(2,2), 'k+', 'MarkerSize', 10, 'LineWidth', 2)
plot([-1 1]*5*V(1,2), [-1 1]*5*V(2,2), 'k--')
end
for i=1:8
subplot(2,4,i)
axis([-8 8 -8 8])
axis square
set(gca,'xtick',[],'ytick',[])
end