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<pse 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'XyXX'(así como svd deXyX'). 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.