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'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.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 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