El análisis de componentes principales (PCA) generalmente se explica a través de una descomposición propia de la matriz de covarianza. Sin embargo, también se puede realizar a través de descomposición en valores singulares (SVD) de la matriz de datos . ¿Como funciona? ¿Cuál es la conexión entre estos dos enfoques? ¿Cuál es la relación entre SVD y PCA?
O, en otras palabras, ¿cómo usar SVD de la matriz de datos para realizar la reducción de dimensionalidad?
Respuestas:
Deje que la matriz de datos tenga un tamaño , donde es el número de muestras y es el número de variables. Supongamos que está centrado , es decir, las medias de columna se han restado y ahora son iguales a cero. n × p n pX n×p n p
Entonces la matriz de covarianza viene dada por . Es una matriz simétrica y, por lo tanto, se puede diagonalizar: donde es una matriz de vectores propios (cada columna es un vector propio) y es una matriz diagonal con valores propios en orden decreciente en la diagonal. Los vectores propios se denominan ejes principales o direcciones principales de los datos. Las proyecciones de los datos en los ejes principales se denominan componentes principales , también conocidos como puntajes de PCC C = X ⊤ X / ( n - 1 ) C = V L V ⊤ , V L λ i j j X V i i X Vp×p C C=X⊤X/(n−1)
Si ahora realizamos una descomposición de valores singulares de , obtenemos una descomposición donde es una matriz unitaria y es la matriz diagonal de valores singulares . Desde aquí se puede ver fácilmente que lo que significa que los vectores singulares derechos son direcciones principales y que los valores singulares están relacionados con los valores propios de la matriz de covarianza a través de . Los componentes principales están dados porX = U S V ⊤ , U S s i C = V S U ⊤ U S V ⊤ / ( n - 1 ) = V S 2X
Para resumir:
Enlaces adicionales
¿Cuál es la relación intuitiva entre SVD y PCA ? Un hilo muy popular y muy similar en matemáticas.
¿Por qué PCA de datos mediante SVD de los datos? - una discusión de cuáles son los beneficios de realizar PCA a través de SVD [respuesta corta: estabilidad numérica].
Análisis de PCA y correspondencia en su relación con Biplot - PCA en el contexto de algunas técnicas congéneres, todas basadas en SVD.
¿Hay alguna ventaja de SVD sobre PCA? - una pregunta que pregunta si hay algún beneficio al usar SVD en lugar de PCA [respuesta corta: pregunta mal planteada].
Tiene sentido el análisis de componentes principales, los vectores propios y los valores propios : mi respuesta ofrece una explicación no técnica de PCA. Para llamar la atención, reproduzco una figura aquí:
fuente
Escribí un fragmento de Python & Numpy que acompaña la respuesta de @ ameeba y lo dejo aquí en caso de que sea útil para alguien. Los comentarios se toman principalmente de la respuesta de @ ameeba.
fuente
Déjame comenzar con PCA. Suponga que tiene n puntos de datos compuestos de d números (o dimensiones) cada uno. Si centra estos datos (resta el punto medio de datos de cada vector de datos ) puede apilar los datos para hacer una matrizμ xi
La matriz de covarianza
medidas en qué grado las diferentes coordenadas en las que se proporcionan sus datos varían juntas. Por lo tanto, tal vez no sea sorprendente que PCA, que está diseñado para capturar la variación de sus datos, se pueda dar en términos de la matriz de covarianza. En particular, la descomposición del valor propio de resulta serS
donde es el -ésimo componente principal , o PC, y es el -ésimo valor propio de y también es igual a la varianza de los datos a lo largo de la -ésima PC. Esta descomposición proviene de un teorema general de álgebra lineal, y algunos trabajos no tienen que hacer para motivar al relatino a PCA.vi i λi i S i
SVD es una forma general de entender una matriz en términos de su espacio de columna y espacio de fila. (Es una forma de reescribir cualquier matriz en términos de otras matrices con una relación intuitiva con el espacio de filas y columnas). Por ejemplo, para la matriz podemos encontrar direcciones y en el dominio y rango para queA=(1021) ui vi
Puede encontrarlos considerando cómo como transformación lineal transforma una esfera de unidad en su dominio en una elipse: los semiejes principales de la elipse se alinean con y son sus preimágenes.A S ui vi
En cualquier caso, para la matriz de datos anterior (realmente, solo configure ), SVD nos permite escribirX A=X
donde y son conjuntos de vectores ortonormales. Una comparación con la descomposición del valor propio de revela que los "vectores singulares derechos" son iguales a las PC, los "vectores singulares derechos" son{ v i } S v i{ui} {vi} S vi
y los "valores singulares" están relacionados con la matriz de datos a través deσi
Es un hecho general de que los vectores singulares derecha abarcan todo el espacio de la columna de . En este caso específico, nos da una proyección a escala de los datos en la dirección del -ésimo componente principal. Los vectores singulares izquierdos en general abarcan el espacio de filas de , lo que nos da un conjunto de vectores ortonormales que abarcan los datos de manera muy similar a las PC. X u i X i v i Xui X ui X i vi X
Entro en más detalles y beneficios de la relación entre PCA y SVD en este artículo más largo .
fuente