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 .
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?
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?!
n<p
es weniger RAM und weniger Zeit zum Zerlegen benötigt, XX'
da es kleiner ist.
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'X
jedoch gescheitert.
X'X
undXX'
(sowie über SVD vonX
undX'
) 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.