Die Hauptkomponentenanalyse (PCA) wird üblicherweise durch eine Eigenzerlegung der Kovarianzmatrix erklärt. Sie kann aber auch über die Singular Value Decomposition (SVD) der Datenmatrix . Wie funktioniert es? Welche Verbindung besteht zwischen diesen beiden Ansätzen? Wie ist die Beziehung zwischen SVD und PCA?
Oder mit anderen Worten, wie kann die SVD der Datenmatrix verwendet werden, um eine Dimensionsreduktion durchzuführen?
Antworten:
Die Datenmatrix sei groß, wobei die Anzahl der Abtastwerte und die Anzahl der Variablen ist. Nehmen wir an, es ist zentriert , dh die Spaltenmittel wurden abgezogen und sind jetzt gleich Null. n × p n pX n×p n p
Dann ist die Kovarianzmatrix gegeben durch . Es ist eine symmetrische Matrix und kann daher diagonalisiert werden: wobei eine Matrix von Eigenvektoren ist (jede Spalte ist ein Eigenvektor) und ist eine Diagonalmatrix mit Eigenwerten in absteigender Reihenfolge auf der Diagonale. Die Eigenvektoren werden als Hauptachsen oder Hauptrichtungen der Daten bezeichnet. Projektionen der Daten auf den Hauptachsen werden als Hauptkomponenten bezeichnet , die auch als PC-Scores bezeichnet werdenC C = X ⊤ X / ( n - 1 ) C = V L V ⊤ , V L λ i j j X V i i X Vp×p C C=X⊤X/(n−1)
Wenn wir nun eine Singularwertzerlegung von , erhalten wir eine Zerlegung von wobei eine Einheitsmatrix und die Diagonalmatrix von ist singuläre Werte . Von hier aus kann man leicht sehen, dass was bedeutet, dass rechte Singularvektoren Hauptrichtungen sind und dass Singularwerte mit den Eigenwerten der Kovarianzmatrix über . Hauptbestandteile sind gegeben durchX = U S V ⊤ , U S s i C = V S U ⊤ U S V ⊤ / ( n - 1 ) = V S 2X
Zusammenfassen:
Weiterführende Links
Was ist die intuitive Beziehung zwischen SVD und PCA - ein sehr beliebter und sehr ähnlicher Thread zu math.SE.
Warum PCA von Daten mittels SVD der Daten? - eine Diskussion über die Vorteile der Durchführung von PCA mittels SVD [kurze Antwort: numerische Stabilität].
PCA - und Korrespondenzanalyse in ihrer Beziehung zu Biplot - PCA im Kontext einiger allgemeiner Techniken, die alle auf SVD basieren.
Gibt es einen Vorteil von SVD gegenüber PCA? - eine Frage, in der gefragt wird, ob die Verwendung von SVD anstelle von PCA Vorteile bringt [kurze Antwort: schlecht gestellte Frage].
Die Analyse von Hauptkomponenten, Eigenvektoren und Eigenwerten verstehen - meine Antwort mit einer nicht-technischen Erklärung der PCA. Um die Aufmerksamkeit auf sich zu ziehen, reproduziere ich hier eine Figur:
quelle
Ich habe ein Python & Numpy-Snippet geschrieben, das die Antwort von @ amoeba begleitet, und ich lasse es hier, falls es für jemanden nützlich ist. Die Kommentare stammen größtenteils aus der Antwort von @amoeba.
quelle
Lassen Sie mich mit PCA beginnen. Angenommen, Sie haben n Datenpunkte, die jeweils aus d Zahlen (oder Dimensionen) bestehen. Wenn Sie diese Daten zentrieren (subtrahieren Sie den mittleren Datenpunkt von jedem Datenvektor ), können Sie die Daten stapeln, um eine Matrix zu erstellenμ xi
Die Kovarianzmatrix
misst, in welchem Maße die verschiedenen Koordinaten, in denen Ihre Daten angegeben sind, voneinander abweichen. Daher ist es vielleicht nicht verwunderlich, dass PCA - mit dem die Variation Ihrer Daten erfasst werden soll - in Form der Kovarianzmatrix angegeben werden kann. Insbesondere stellt sich die Eigenwertzerlegung von als herausS
wobei die te Hauptkomponente oder PC ist und der te Eigenwert von und auch gleich der Varianz der Daten entlang des ten PC ist. Diese Zersetzung kommt aus einem allgemeinen Satz in der linearen Algebra, und einige Arbeit nicht getan werden , haben die relatino zu PCA zu motivieren.vi i λi i S i
SVD ist eine allgemeine Methode, um eine Matrix in Bezug auf ihren Spalten- und Zeilenraum zu verstehen. (Es ist eine Möglichkeit, eine Matrix in Bezug auf andere Matrizen mit einer intuitiven Beziehung zum Zeilen- und Spaltenraum neu zu schreiben.) Zum Beispiel für die Matrix Wir können die Richtungen und in der Domäne und im Bereich finden, so dassA=(1021) ui vi
Sie können diese finden, indem Sie sich überlegen, wie als lineare Transformation eine Einheitskugel in ihrer Domäne in eine Ellipse verwandelt : Die der Ellipse richten sich nach dem und dem sind ihre Vorbilder.A S ui vi
In jedem Fall lässt uns SVD für die obige Datenmatrix (setzen Sie einfach ) schreibenX A=X
wobei und orthonormale Sätze von Vektoren sind. Ein Vergleich mit der Eigenwertzerlegung von zeigt, dass die "rechten Singularvektoren" gleich den PCs sind, die "rechten Singularvektoren" sind{ v i } S v i{ui} {vi} S vi
und die "singulären Werte" beziehen sich auf die Datenmatrix überσi
Es ist eine allgemeine Tatsache, dass die rechten Singularvektoren den Spaltenraum von überspannen . In diesem speziellen Fall eine skalierte Projektion der Daten auf die Richtung der ten Hauptkomponente. Die linken singulären Vektoren überspannen im Allgemeinen den Zeilenraum von , was uns einen Satz orthonormaler Vektoren gibt, die die Daten ähnlich wie bei PCs überspannen. x u i x i v i xui X ui X i vi X
In diesem längeren Artikel gehe ich auf einige Details und Vorteile der Beziehung zwischen PCA und SVD ein .
quelle