7 votos

Relación entre la descomposición del valor singular (SVD) y el análisis de componentes principales (PCA). Un resultado radical(?)

Me preguntaba si podría obtener una descripción matemática de la relación entre la descomposición del valor singular (SVD) y el análisis de componentes principales (PCA).

Para ser más concreto tengo algún punto que no entiendo muy bien, al menos desde el punto de vista matemático.

  1. ¿Cuáles son los componentes principales (PC), teniendo en cuenta que estamos utilizando la SVD para calcular el ACP?

  2. ¿Qué parte de la SVD se convierte en los PC?

  3. ¿Cuál es la relación entre las matrices ortogonales de la SVD más la matriz diagonal con la resultados y cargas del PCA?

  4. He leído que los componentes principales pueden describir grandes conjuntos de datos con muy pocos cargas vectores, ¿cómo es posible (matemáticamente)? ¿De qué manera estos pocos componentes principales pueden decirme algo sobre el desviación de un conjunto de big data y qué tiene que ver la SVD con este proceso?

He intentado ser muy específico haciendo mis preguntas, si algo no está tan claro pido disculpas.

Gracias de antemano por su ayuda.

PD He hecho los deberes y me veo muy cerca de : ¿Cuál es la relación intuitiva entre SVD y PCA? pero no he podido encontrar las respuestas que buscaba. Creo que las mías están más relacionadas con los conceptos matemáticos que con los prácticos. De todos modos, si crees que esta pregunta es innecesaria (duplicada) la eliminaré.

1 votos

Obtendrás mejores respuestas en Cross Validated, el sitio hermano de las estadísticas (o puede que se marque allí como duplicado...) De todos modos, busca allí preguntas similares y encontrarás mucha información.

4voto

littleO Puntos 12894

Supongamos que tenemos un grupo de vectores grandes $x_1,\ldots,x_N$ almacenados como las columnas de una matriz $X$ . Sería bueno si pudiéramos encontrar de alguna manera un pequeño número de vectores $u_1,\ldots,u_s$ tal que cada vector $x_i$ es (con una buena aproximación) igual a una combinación lineal de los vectores $u_1,\ldots, u_s$ . Esto nos permitiría describir cada uno de los vectores (muy grandes) $x_i$ utilizando sólo un pequeño número de coeficientes.

Así que queremos encontrar vectores $u_1,\ldots, u_s$ tal que para cada $x_i$ tenemos \begin{equation} x_i \approx c_{i,1} u_1 + c_{i,2} u_2 + \cdots + c_{i,s} u_s \end{equation} para unos coeficientes $c_{i,1},\ldots, c_{i,s}$ .

Estos $N$ ecuaciones ( $i$ va de $1$ a $N$ ) pueden combinarse en una única ecuación matricial: \begin{equation} X \approx U C \end{equation} para alguna matriz $C$ . (Aquí las columnas de $U$ son $u_1,\ldots, u_s$ .)

Tenga en cuenta que el rango de $UC$ es menor o igual que $s$ . Así que $UC$ es una aproximación de bajo rango de $X$ .

Aquí está el hecho clave: la SVD nos da una aproximación óptima de bajo rango de $X$ ¡! Este es uno de los hechos básicos de la SVD. Por eso la SVD puede utilizarse para la compresión de imágenes.

Si el SVD de $X$ se expresa como \begin{equation} X = \sum_{i=1}^N \sigma_i u_i v_i^T, \end{equation} donde $\sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_N$ , entonces una aproximación óptima de $X$ de rango inferior o igual a $s$ es \begin{align} X &\approx \sum_{i=1}^s \sigma_i u_i v_i^T \\ &= U \Sigma V^T \\ &= U C \end{align} donde $U$ es la matriz con columnas $u_1,\ldots, u_s$ y $C = \Sigma V^T$ .

Por lo tanto, el SVD encuentra un óptimo $U$ para nosotros.

El PCA toma como entrada vectores $x_1,\ldots,x_N$ así como un pequeño número entero positivo $s$ . El PCA degrada los vectores y los almacena en las columnas de una matriz $X$ y luego simplemente calcula el SVD $X = U \Sigma V^T$ y devuelve el primer $s$ columnas de $U$ como salida.

0 votos

¡Muchas gracias @littleO ha sido una explicación muy bonita! Creo que el PCA se puede utilizar (teniendo en cuenta tu respuesta y la que obtuve antes, además de algunas lecturas) como método que aproxima funciones . ¡Gracias de nuevo! +1 por tu respuesta, pero me temo que no puedo elegir sólo una respuesta como correcta. Creo que ambas respuestas son más que correctas :)

2voto

andy.holmes Puntos 518

Refiriéndose a la responder de la pregunta vinculada:

1) Los componentes principales son los vectores columna de $U=W$ . Su significación y orden de significación viene dada por los valores singulares, la mayoría de las implementaciones devuelven los valores singulares ordenados por tamaño.

2) $U=W$ .

3) ? y ver arriba, $WDW^⊤=XX^⊤=UΣ^2U^⊤$ , por lo que de nuevo $W=U$ y $D=Σ^2$

4) La idea es que los puntos de la muestra se encuentran en una nube que es esencialmente plana o incluso delgada, es decir, plana en múltiples direcciones. El supuesto de la SVD y el PCA es que el centro de la nube es el origen, y se quiere averiguar las direcciones en las que se extiende la nube. Entonces el SVD $X=UΣV^⊤$ puede utilizarse para encontrar una aproximación de bajo rango $$ X\approx\sum_{i=1}^r \sigma_iu_iv_i^⊤ $$ con error $\sqrt{\sum_{i=r+1}^m\sigma_i^2}$ . Si ese error es pequeño, los vectores $u_1,...,u_r$ dan el o los patrones dominantes para las filas de $X$ y las desviaciones más visibles de ese patrón. El último de los $u_i$ con los valores singulares más pequeños dan vectores que son dominantemente ortogonales al conjunto de datos, es decir, el conjunto de datos se alinea en el complemento ortogonal de los vectores menos significativos.

0 votos

Hola @LutzL, gracias por tu respuesta, he hecho una edición a mi pregunta con otras preguntas que me surgieron después de estudiar tu respuesta y leer un poco más, ¿puede que me ayudes con estas también? Tienes un +1 por tu respuesta, por supuesto :)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X