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

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.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 origenXX'a otro de la matriz de covarianzaX'X, pero fallé.Respuestas:
La matriz de covarianza es de tamaño y está dada por C = 1D × D
La matriz de la que está hablando no es, por supuesto, una matriz de covarianza; se llama matriz de Gram y tiene un tamaño : G = 1norte× N
El análisis de componentes principales (PCA) se puede implementar a través de la descomposición propia de cualquiera de estas matrices. Estas son solo dos formas diferentes de calcular la misma cosa.
La forma más fácil y útil de ver esto es usar la descomposición de valores singulares de la matriz de datos . Al conectar esto a las expresiones para C y G , obtenemos: CX = U S V⊤ C sol
Los vectores propios de la matriz de covarianza son direcciones principales. Las proyecciones de los datos en estos vectores propios son componentes principales; estas proyecciones están dadas por U S . Principales componentes escalados para unidad de longitud se dan por U . Como puede ver, los vectores propios de la matriz de Gram son exactamente estos componentes principales escalados. Y los valores propios de C y G coinciden.V U S U C sol
fuente