Tengo una matriz , que contiene mis muestras en el espacio -dimensional. Ahora deseo codificar mi propio análisis de componentes principales (PCA) en Matlab. Debo decir a primero.X N = 20 D = 100 X X 0
Leí en el código de alguien que en tales escenarios donde tenemos más dimensiones que observaciones, ya no descomponemos eigen la matriz de covarianza de . En su lugar, se descomponen Eigen- . ¿Por qué es correcto?1
La matriz de covarianza normal es de tamaño , cada elemento del cual nos dice la covarianza entre dos dimensiones. Para mí, ni siquiera tiene las dimensiones correctas. Es matriz, entonces, ¿qué nos diría? ¿Covarianza entre dos observaciones?1 N×N
n<p
se necesita menos RAM y menos tiempo para descomponerse, XX'
ya que es de menor tamaño.
XX'
a PC. ¿Podría, por favor, mostrarme brevemente cómo? Dado que las PC son solo vectores propios de la matriz de covarianza, intenté moverme de un origen XX'
a otro de la matriz de covarianza X'X
, pero fallé.
X'X
yXX'
(así como svd deX
yX'
). Lo que se llama "cargas" en un caso se llamará "puntajes de PC" en el otro y viceversa. Debido a que ambas son solo coordenadas ( ver, por ejemplo ) y los ejes, las "dimensiones principales" son las mismas.