Wird PCA immer noch über die Eigendekomposition der Kovarianzmatrix durchgeführt, wenn die Dimensionalität größer als die Anzahl der Beobachtungen ist?

10

Ich habe eine Matrix , die meine Abtastwerte im dimensionalen Raum enthält. Ich möchte jetzt meine eigene Hauptkomponentenanalyse (PCA) in Matlab codieren. Ich erniedrige zuerst zu .20×100XN=20D=100XX0

Ich habe aus dem Code von jemandem gelesen, dass wir in solchen Szenarien, in denen wir mehr Dimensionen als Beobachtungen haben, die Kovarianzmatrix des nicht mehr selbst zerlegen . Stattdessen haben wir EIGEN zersetzende . Warum ist es richtig?X01N1X0X0T

Die normale Kovarianzmatrix hat die Größe , wobei jedes Element die Kovarianz zwischen zwei Dimensionen angibt. Für mich hat nicht einmal die richtigen Abmessungen! Es ist eine Matrix, also was würde es uns sagen? Kovarianz zwischen zwei Beobachtungen?!D×D1N1X0X0TN×N

Sibbs Glücksspiel
quelle
Die Antwort auf Ihre Frage lautet unter den Umständen, dass Sie - wie sich aus Ihrer Aufgabe ergibt - die Kovarianzmatrix der Spalten nicht für sich selbst benötigen. Sie wollten es nur als Weg, um PCs zu erhalten. Recht? Die gleichen PCA-Ergebnisse können jedoch über Eigen von X'Xund XX'(sowie über SVD von Xund X') erhalten werden. Was in einem Fall als "Ladungen" bezeichnet wird, wird im anderen Fall als "PC-Scores" bezeichnet und umgekehrt. Da beide nur Koordinaten ( siehe zum Beispiel ) und die Achsen sind, sind die "Hauptabmessungen" gleich.
ttnphns
1
(Forts.) Wenn ja, und Sie können frei wählen, welche Sie zerlegen möchten - es ist ratsam, das zu zerlegen, was schneller / effizienter zu tun ist. Wenn n<pes weniger RAM und weniger Zeit zum Zerlegen benötigt, XX'da es kleiner ist.
ttnphns
@ttnphns Tolle Erklärung. Ich verstehe den Punkt jetzt. Ich habe jedoch immer noch Probleme, vom Eigen XX'zum PC zu wechseln. Könnten Sie mir bitte ganz kurz zeigen, wie? Da PCs nur Eigenvektoren der Kovarianzmatrix sind, habe ich versucht, von Eigen XX'zu Eigen der Kovarianzmatrix zu wechseln, bin X'Xjedoch gescheitert.
Sibbs Gambling
1
Ich muss los. Vielleicht wird @amoeba (der in der Algebra viel agiler ist als ich) oder ein anderer Leser bald hier vorbeischauen und Ihnen helfen. Prost.
ttnphns
1
@ttnphns: Fertig :)
Amöbe sagt Reinstate Monica

Antworten:

22

Die Kovarianzmatrix hat die Größe und ist gegeben durchD×D

C=1N1X0X0.

Die Matrix, über die Sie sprechen, ist natürlich keine Kovarianzmatrix. Es heißt Gram-Matrix und hat die Größe :N×N

G=1N1X0X0.

Die Hauptkomponentenanalyse (PCA) kann durch Eigenzerlegung einer dieser Matrizen implementiert werden. Dies sind nur zwei verschiedene Methoden, um dasselbe zu berechnen.

Der einfachste und nützlichste Weg, dies zu sehen, ist die Verwendung der Singularwertzerlegung der Datenmatrix . Wenn wir dies in die Ausdrücke für und , erhalten wir:X=USVCG

C=VS2N1VG=US2N1U.

Eigenvektoren der Kovarianzmatrix sind Hauptrichtungen. Projektionen der Daten auf diese Eigenvektoren sind Hauptkomponenten; Diese Projektionen werden von . Auf Längeneinheit skalierte Hauptkomponenten sind durch . Wie Sie sehen, sind Eigenvektoren der Gram-Matrix genau diese skalierten Hauptkomponenten. Und die Eigenwerte von und stimmen überein.VUSUCG

Der Grund, warum es möglicherweise empfohlen wird , die Gram-Matrix zu verwenden, wenn ist, liegt darin, dass sie im Vergleich zur Kovarianzmatrix kleiner ist und daher schneller zu berechnen und schneller selbst zu zerlegen ist. Wenn Ihre Dimensionalität zu hoch ist, können Sie die Kovarianzmatrix nicht einmal im Speicher speichern. Daher ist die Verwendung einer Gram-Matrix die einzige Möglichkeit, PCA durchzuführen. Aber für verwaltbares Sie immer noch die Eigendekomposition der Kovarianzmatrix verwenden, wenn Sie es vorziehen, auch wenn .N<DDDN<D


Amöbe sagt Reinstate Monica
quelle
1
Gute Antwort! Ich wusste nicht, dass es einen Namen hat! Vielen Dank! Ich bin jetzt zuversichtlich, damit meine Berechnung zu beschleunigen.
Sibbs Gambling
3
Meine Antwort geht davon aus, dass Sie und vielleicht auch möchten . Wenn Sie auch erhalten möchten, können Sie es über berechnen, nachdem Sie . Wenn Ihre Dimensionalität zu hoch ist, können Sie die Kovarianzmatrix nicht einmal im Speicher speichern. Daher ist die Verwendung einer Gram-Matrix die einzige Möglichkeit, PCA durchzuführen. S / ( n - 1 ) V U X U.US/(n1)VUXU
Amöbe sagt Reinstate Monica
Diese Antwort ist klarer als viele Expositionen, die ich in Büchern gesehen habe. Vielen Dank.
usεr11852
Nur zu Referenzzwecken: Ich denke, das Technometrics-Papier von IJ Good aus dem Jahr 1969 " Einige Anwendungen der singulären Zerlegung einer Matrix " ist eines der ersten, das dies zuerst vollständig referenziert.
usεr11852
1
@ MattWenham Genau.
Amöbe sagt Reinstate Monica