Es ist gängige Praxis, PCA (Principal Component Analysis) vor einem Clustering-Algorithmus (z. B. k-means) anzuwenden. Es wird angenommen, dass es die Clustering-Ergebnisse in der Praxis verbessert (Rauschunterdrückung).
Ich bin jedoch an einer vergleichenden und eingehenden Untersuchung der Beziehung zwischen PCA und k-means interessiert. Zum Beispiel Chris Ding und Xiaofeng Sich, 2004 K-Means - Clustering über Component Analysis Haupt zeigte , dass „Hauptkomponenten die kontinuierlichen Lösungen für die diskreten Cluster - Mitgliedschaft Indikatoren für K-Means - Clustering sind“. Es fällt mir jedoch schwer, dieses Papier zu verstehen, und Wikipedia behauptet tatsächlich , dass es falsch ist .
Die Ergebnisse der beiden Methoden unterscheiden sich auch in dem Sinne, dass PCA dazu beiträgt, die Anzahl der "Merkmale" zu reduzieren, während die Varianz erhalten bleibt, während Clustering die Anzahl der "Datenpunkte" reduziert, indem mehrere Punkte nach ihren Erwartungen / Mitteln zusammengefasst werden (im Fall von k-means). Wenn der Datensatz also aus Punkten mit jeweils Merkmalen besteht, zielt PCA darauf ab, die Merkmale zu komprimieren, während Clustering darauf abzielt, die Datenpunkte zu komprimieren .
Ich bin auf der Suche nach einem Laien, der die Zusammenhänge zwischen diesen beiden Techniken erklärt.
quelle
Antworten:
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 1n n 1
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)
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=2 100
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=2 n1 n2 n=n1+n2 q∈Rn qi=n2/nn1−−−−−−√ q i = - √i qi=−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⊤Gq G n×n G=X⊤cXc X n×2 Xc
(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.q q⊤Gq p p⊤Gp q p
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:
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.q p
Dann entwickelt Ding & He jedoch eine allgemeinere Behandlung für und formuliert am Ende Satz 3.3 alsK>2
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
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
quelle
kmeans
Funktion mit 100 Replikationen ausgeführt: Sie wählt jedes Mal eine andere zufällige Initialisierung und wählt dann die beste Lösung aus, sodass hoffentlich sichergestellt werden sollte, dass das globale Optimum erreicht wird.PCA und K-means machen verschiedene Dinge.
PCA wird zur Dimensionsreduzierung / Merkmalsauswahl / Repräsentationslernen verwendet, z. B. wenn der Merkmalsraum zu viele irrelevante oder redundante Merkmale enthält. Ziel ist es, die intrinsische Dimensionalität der Daten zu finden.
Hier ist ein zweidimensionales Beispiel, das auf höherdimensionale Räume verallgemeinert werden kann. Der Datensatz hat zwei Features, und , jeder Kreis ist ein Datenpunkt.x y
Im Bild hat eine größere Größe als . Dies sind die Eigenvektoren. Die Dimension der Daten wird von zwei Dimensionen auf eine Dimension reduziert (in diesem Fall nicht viel Auswahl) und dies erfolgt durch Projizieren auf die Richtung des Vektors (nach einer Drehung, bei der parallel oder senkrecht zu einer der Achsen wird). . Dies liegt daran, dass orthogonal zur Richtung der größten Varianz ist. Ein Weg, um es sich vorzustellen, ist ein minimaler Informationsverlust. (Es gibt immer noch einen Verlust, da eine Koordinatenachse verloren geht).v1 v2 v2 v2 v2
K-means ist ein Clustering-Algorithmus, der die natürliche Gruppierung von Datenpunkten basierend auf ihrer Ähnlichkeit zurückgibt. Es ist ein Sonderfall von Gaußschen Mischungsmodellen .
In der Abbildung unten hat der Datensatz drei Dimensionen. Aus dem 3D-Diagramm auf der linken Seite ist ersichtlich, dass die Dimension ohne Informationsverlust „fallengelassen“ werden kann. PCA wird verwendet, um die Daten auf zwei Dimensionen zu projizieren. In der Abbildung links ist auch die Projektionsebene dargestellt. Anschließend können die projizierten Daten mit K-Mitteln versehen werden, um die verschiedenen Gruppen in der Abbildung rechts mit verschiedenen Farben zu kennzeichnen.X
PCA- oder andere Dimensionalitätsreduktionstechniken werden vor unbeaufsichtigten oder überwachten Methoden beim maschinellen Lernen verwendet. Zusätzlich zu den von Ihnen und den oben genannten Gründen wird es auch zu Visualisierungszwecken verwendet (Projektion auf 2D oder 3D aus höheren Dimensionen).
In Bezug auf den Artikel glaube ich nicht, dass es irgendeine Verbindung gibt, PCA hat keine Informationen bezüglich der natürlichen Gruppierung von Daten und arbeitet mit den gesamten Daten, nicht mit Teilmengen (Gruppen). Wenn einige Gruppen durch einen Eigenvektor erklärt werden könnten (nur weil dieser bestimmte Cluster entlang dieser Richtung verteilt ist), ist dies nur ein Zufall und sollte nicht als allgemeine Regel angesehen werden.
In der Tat ist die Komprimierung eine intuitive Möglichkeit, über PCA nachzudenken. Um jedoch jeden Punkt relativ zu seinem Cluster zu beschreiben, benötigen Sie in K-means mindestens die gleiche Menge an Informationen (z. B. Dimensionen) , wobei der Abstand ist und gespeichert ist anstelle von . Außerdem müssen Sie speichern, um zu wissen, zu welchem Delta das Verhältnis besteht. Sie können natürlich und speichern, jedoch können Sie die tatsächlichen Informationen in den Daten nicht abrufen.xi=d(μi,δi) d δi xi μi d i
Clustering fügt wirklich Informationen hinzu. Ich betrachte es als Aufteilung der Daten in natürliche Gruppen (die nicht unbedingt disjunkt sein müssen), ohne zu wissen, was die Bezeichnung für jede Gruppe bedeutet (nun, bis Sie sich die Daten in den Gruppen ansehen).
quelle
Es ist üblich, Daten vor der Verwendung von k-means aufzuhellen . Der Grund ist, dass k-means extrem skalensensitiv ist und wenn Sie gemischte Attribute haben, es keine "wahre" Skala mehr gibt. Dann müssen Sie Ihre Daten normalisieren, standardisieren oder aufhellen. Keines ist perfekt, aber das Aufhellen beseitigt die globale Korrelation, was manchmal zu besseren Ergebnissen führen kann. PCA / Whitening ist da Sie mit der Kovarianzmatrix arbeiten.O(n⋅d2+d3)
Nach meinem Verständnis ist die Beziehung von k-means zu PCA nicht in den Originaldaten enthalten . Es ist die Verwendung von PCA auf der Distanzmatrix (die Einträge hat, und vollständige PCA ist somit - dh unerschwinglich teuer, insbesondere im Vergleich zu k-Mitteln, die sind wobei der einzige große Term ist) und vielleicht nur für . K-means ist ein Optimierungsproblem der kleinsten Fehlerquadrate, ebenso PCA. k-means versucht, die Partition der kleinsten Quadrate der Daten zu finden. PCA ermittelt den Cluster-Zugehörigkeitsvektor der kleinsten Quadrate.n2 O(n2⋅d+n3) O(k⋅n⋅i⋅d) n k=2
Der erste Eigenvektor hat die größte Varianz, daher bedeutet das Aufteilen auf diesen Vektor (der der Clusterzugehörigkeit ähnelt, keine Eingabe von Datenkoordinaten!) Das Maximieren zwischen den Clustervarianzen . Indem Sie die Streuung zwischen den Clustern maximieren, minimieren Sie auch die Streuung innerhalb des Clusters.
Aber für echte Probleme ist dies nutzlos. Es ist nur von theoretischem Interesse.
quelle
Das Lösen des k-Mittels in seiner niedrigrangigen O (k / & egr;) -Näherung (dh das Projizieren auf die Spanne der ersten größten Singularvektoren wie in PCA) würde eine (1 + & egr;) -Näherung in Bezug auf den multiplikativen Fehler ergeben.
Insbesondere würde eine Projektion auf den k-größten Vektor eine 2-Approximation ergeben.
Tatsächlich kann die Summe der quadratischen Abstände für JEDE Menge von k Zentren durch diese Projektion angenähert werden. Dann können wir den Coreset für die reduzierten Daten berechnen, um die Eingabe in Poly (k / eps) -Punkte zu reduzieren, die sich dieser Summe annähern.
Siehe: Dan Feldman, Melanie Schmidt, Christian Sohler: Aus großen Datenmengen kleine Datenmengen machen: Coresets mit konstanter Größe für k-means, PCA und projektives Clustering. SODA 2013: 1434 & ndash; 1453
quelle
Intuitive Beziehung von PCA und KMeans
Theoretisch ergibt sich die PCA-Dimensionsanalyse (die erste K-Dimension, bei der 90% der Varianz erhalten bleiben ... muss keine direkte Beziehung zum K-Mittelwert-Cluster haben), der Wert der Verwendung von PCA ergibt sich jedoch aus einer praktischen Überlegung angesichts der Art der Objekte, die Wir analysieren die Tendenz, sich auf natürliche Weise von (einem bestimmten Segment) ihrer Hauptkomponenten (Alter, Geschlecht) zu gruppieren bzw. zu entwickeln. b) PCA eliminiert diese geringe Varianzdimension (Rauschen) und schafft so selbst einen Mehrwert (und einen ähnlichen Sinn wie Clustering) ) durch Fokussierung auf diese Schlüsseldimension In einfachen Worten ist es genau wie die XY-Achse, die uns hilft, jedes abstrakte mathematische Konzept zu meistern, jedoch auf eine fortgeschrittenere Art und Weise.
K Mittel versuchen, die Gesamtentfernung innerhalb eines Clusters für ein gegebenes K zu minimieren
Die Auswahl von Clustern basierend auf / entlang der CPs kann bequem zu einem bequemen Zuweisungsmechanismus führen
Dies könnte ein Beispiel sein, wenn x der erste PC entlang der X-Achse ist: (........... CC1 ............... CC2 ..... ....... CC3 X-Achse), wobei die X-Achse sagt, dass sie über 9X% der Varianz erfasst und sagt, dass dies der einzige PC ist
6. Schließlich wird PCA auch zur Visualisierung nach Abschluss von K Means verwendet (Ref. 4).
Wenn die PCA-Anzeige * unser K-Clustering-Ergebnis orthogonal oder nahe daran ist, ist dies ein Zeichen dafür, dass es sich bei unserem Clustering um eine solide handelt, die jeweils einzigartige Eigenschaften aufweist
(* da per definitionem PCA diese Hauptabmessungen (1D bis 3D) herausfinden / anzeigen, so dass K (PCA) wahrscheinlich einen großen Teil der Varianz erfasst.
Daher ist PCA sowohl zur Visualisierung und Bestätigung einer guten Clusterbildung als auch als wesentliches Element zur Bestimmung der K-Mittel-Clusterbildung nützlich - zur Verwendung vor dem K-Mittel.
Referenz:
quelle