Enfoque matemático de PCA

¿Qué es PCA?

El principio rector principal para el análisis de componentes principales es la EXTRACCIÓN DE CARACTERÍSTICAS, es decir, «las características de un conjunto de datos deben ser menores, así como la similitud entre ellas es muy inferior». En PCA, se extrae un nuevo conjunto de características de las características originales que son de naturaleza bastante diferente. Entonces, un espacio de características n-dimensional se transforma en un espacio de características m-dimensional. , donde las dimensiones son ortogonales entre sí. 

Concepto de ortogonalidad: 

(Para entender este tema, tenemos que ir al concepto de espacio vectorial en álgebra lineal) El Espacio Vectorial es un conjunto de vectores. Se pueden representar como una combinación lineal del conjunto más pequeño de vectores llamados VECTORES BASE. Entonces, cualquier vector ‘v’ en un espacio vectorial se puede representar como: 

 v = \sum_{i=1}^na_iu_i

donde a representa ‘n’ escalares y u representa los vectores base. Los vectores base son ortogonales entre sí. La ortogonalidad de los vectores se puede considerar como una extensión de los vectores que son perpendiculares en un espacio vectorial 2D . Entonces, nuestro vector de características (conjunto de datos) se puede transformar en un conjunto de componentes principales (al igual que los vectores base).

Objetivos de PCA: 

  1.  Las nuevas funciones son distintas, es decir, la covarianza entre las nuevas funciones (en el caso de PCA, son los componentes principales) es 0 .
  2. Los componentes principales se generan en orden de variabilidad en los datos que captura. Por lo tanto, el primer componente principal debe capturar la máxima variabilidad, el segundo debe capturar la siguiente variabilidad más alta, etc.
  3. La suma de la varianza de las nuevas características/los componentes principales debe ser igual a la suma de la varianza de las características originales.

Trabajo de PCA: 

PCA funciona en un proceso llamado Descomposición de valores propios de una array de covarianza de un conjunto de datos. Los pasos son los siguientes:

  • Primero, calcule la array de covarianza de un conjunto de datos.
  • Luego, calcule los vectores propios de la array de covarianza.
  • El vector propio que tiene el valor propio más alto representa la dirección en la que existe la varianza más alta. Así que esto ayudará a identificar el primer componente principal.
  • El vector propio que tiene el siguiente valor propio más alto representa la dirección en la que los datos tienen la varianza restante más alta y también es ortogonal a la primera dirección. Entonces, esto ayuda a identificar el segundo componente principal.
  • Así, identifique los vectores propios ‘k’ superiores que tienen valores propios ‘k’ superiores para obtener los componentes principales ‘k’.

Numérico para PCA:

Considere el siguiente conjunto de datos 

x1 2.5 0.5 2.2 1.9 3.1 2.3 2.0 1.0 1.5 1.1
x2 2.4 0.7 2.9 2.2 3.0 2.7 1.6 1.1 1.6 0.9

Paso 1: estandarizar el conjunto de datos 

Media para  x_1        = 1.81 = x_{1mean}

Media para  x_2        = 1.91 = x_{2mean}

Cambiaremos el conjunto de datos. 

x_{1new} = x_1 + x_{1mean} 0,69 -1.31 0.39 0.09 1.29 0.49 0.19 -0.81 -0.31 -0.71
x_{2new} = x_2 + x_{1mean} 0.49 -1.21 0.99 0.29 1.09 0.79 -0.31 -0.81 -0.31 -1.01

Paso 2: encuentre los valores propios y los vectores propios

Array de correlación c = C = \left(\frac{X \cdot X^T}{N-1}\right)

donde, X es la Array del Conjunto de Datos (En este numérico, es una array de 10 X 2) 

X^T         is the transpose of the X (In this numerical, it is a 2 X 10 matrix) and N is the number of elements = 10

Asi que, C = \left(\frac{X \cdot X^T}{10 - 1}\right)= \left(\frac{X \cdot X^T}{9}\right)

{Entonces, para calcular la array de correlación, tenemos que hacer la multiplicación de la array del conjunto de datos con su transpuesta}

C = \begin{bmatrix} 0.616556 & 0.615444\\ 0.615444 & 0.716556 \end{bmatrix}

Usando la ecuación, | C-   \lambda          yo | = 0ecuación (i) donde { \lambda es el valor propio e I es la Array Identidad }

Entonces, resolviendo la ecuación (i) 

\begin{bmatrix} 0.616556 & 0.615444 \\ 0.615444 & 0.716556 \end{bmatrix} - \lambda \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}

\begin{vmatrix} 0.616556-\lambda & 0.615444 \\ 0.615444 & 0.716556-\lambda \end{vmatrix} =  0

Tomando el determinante del lado izquierdo, obtenemos

0.44180 - 0.616556\lambda - 0.716556\lambda + \lambda^2 - 0.37877 = 0

\lambda^2 - 1.33311\lambda + 0.06303 = 0

Obtenemos dos valores para  \lambda        , que son ( \lambda_1        ) = 1.28403 y ( \lambda_2        ) = 0.0490834 . Ahora tenemos que encontrar los vectores propios para los valores propios  \lambda_1         y \lambda_2

Para encontrar los vectores propios a partir de los valores propios, utilizaremos el siguiente enfoque:

Primero, encontraremos los vectores propios para el valor propio 1.28403 usando la ecuación  C \cdot X = \lambda \cdot X

\begin{bmatrix} 0.616556 & 0.615444 \\ 0.615444 & 0.716556 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \end{bmatrix} = 1.28403 \cdot \begin{bmatrix} x \\ y \end{bmatrix}

\begin{bmatrix} 0.616556x + 0.615444y \\ 0.615444x + 0.716556y \end{bmatrix} = \begin{bmatrix} 1.28403x \\ 1.28403y \end{bmatrix}

Resolviendo las arrays, obtenemos

0,616556x + 0,615444y = 1,28403x; x = 0.922049 y

(x e y pertenecen a la array X) por lo que si ponemos y = 1, x resulta ser 0,922049. Así que ahora la array X actualizada se verá así: 

X = \begin{bmatrix} 0.922049 \\ 1 \end{bmatrix}

IMP: Hasta ahora no hemos llegado a los vectores propios, tenemos que hacer algunas modificaciones en la array X. Son los siguientes:

A. Encuentra la raíz cuadrada de la suma de los cuadrados del elemento en la array X, es decir

\sqrt{0.922049^2+1^2}=\sqrt{0.850174+1}=\sqrt{1.850174}=1.3602

B. Ahora divide los elementos de la array X por el número 1.3602 (acabo de encontrar eso)

\begin{bmatrix} \frac{0.922049}{1.3602} \\ \\ \frac{1}{1.3602} \end{bmatrix} = \begin{bmatrix} 0.67787\\ 0.73518 \end{bmatrix}            

Así que ahora encontramos los vectores propios para el vector propio  \lambda_1           , son 0.67787 y 0.73518

En segundo lugar, encontraremos los vectores propios para el valor propio 0.0490834 usando la ecuación {Mismo enfoque que en el paso anterior)

\begin{bmatrix} 0.616556 & 0.615444 \\ 0.615444 & 0.716556 \end{bmatrix} \cdot \begin{bmatrix} x \\ y \end{bmatrix} = 0.0490834 \cdot \begin{bmatrix} x \\ y \end{bmatrix}

\begin{bmatrix} 0.616556x + 0.615444y \\ 0.615444x + 0.716556y \end{bmatrix} = \begin{bmatrix} 0.0490834x \\ 0.0490834y \end{bmatrix}

Resolviendo las arrays, obtenemos

0,616556x + 0,615444y = 0,0490834x; y = -0.922053

(x e y pertenecen a la array X) así que si ponemos x = 1, y resulta ser -0.922053 Así que ahora la array X actualizada se verá así: 

X = \begin{bmatrix} 1 \\ -0.922053 \end{bmatrix}

IMP: Hasta ahora no hemos llegado a los vectores propios, tenemos que hacer algunas modificaciones en la array X. Son los siguientes:

A. Encuentra la raíz cuadrada de la suma de los cuadrados de los elementos en la array X, es decir

\sqrt{1^2+(-0.922053)^2}=\sqrt{1+0.85018}=\sqrt{1.85018}=1.3602

B. Ahora divide los elementos de la array X por el número 1.3602 (acabo de encontrar eso)

\begin{bmatrix} \frac{1}{1.3602} \\ \\ \frac{-0.922053}{1.3602} \end{bmatrix} = \begin{bmatrix} 0.735179 \\ 0.677873 \end{bmatrix}

Así que ahora encontramos los vectores propios para el vector propio \lambda_2, son 0.735176 y 0.677873

Suma de valores propios ( \lambda_1        ) y ( \lambda_2        ) = 1,28403 + 0,0490834 = 1,33 = Varianza total {La mayoría de la varianza proviene de  \lambda_1        }

Paso 3: Organizar valores propios

El vector propio con el valor propio más alto es el componente principal del conjunto de datos. Entonces, en este caso, los vectores propios de lambda1 son los componentes principales. 

{Básicamente, para completar el número, solo tenemos que resolver hasta este paso, pero si tenemos que probar por qué hemos elegido ese vector propio en particular, tenemos que seguir los pasos del 4 al 6 }

Paso 4: Vector de características de formulario

\begin{bmatrix} 0.677873 & 0.735179 \\ 0.735179 & -0.677879 \end{bmatrix}            Este es el VECTOR DE CARACTERÍSTICAS para Numérico

Donde la primera columna son los vectores propios de  \lambda_1         y la segunda columna son los vectores propios de \lambda_2

Paso 5: transformar el conjunto de datos original

Usa la ecuación Z = XV

\begin{bmatrix} 0.69 & 0.49 \\ -1.31 & -1.21 \\ 0.39 & 0.99 \\ 0.09 & 0.29 \\ 1.29 & 1.09 \\ 0.49 & 0.79 \\ 0.19 & -0.31 \\ -0.81 & -0.81 \\ -0.31 & -0.31 \\ -0.71 & -1.01 \end{bmatrix} \cdot \begin{bmatrix} 0.677873 & 0.735179 \\ 0.735179 & -0.677879 \end{bmatrix} = \begin{bmatrix} 0.8297008 & 0.17511574 \\ -1.77758022 & -0.14285816 \\ 0.99219768 & -0.38437446 \\ 0.27421048 & -0.13041706 \\ 1.67580128 & 0.20949934 \\ 0.91294918 & -0.17528196 \\ -1.14457212 & -0.04641786 \\ -0.43804612 & -0.01776486 \\ -1.22382.62 & 0.16267464 \end{bmatrix} = Z

Paso 6: Reconstrucción de datos

Use la ecuación X =  Z*V^T                ( V^T         es la transposición de V), X = Fila de datos medios cero

\begin{bmatrix} 0.8297008 & 0.17511574 \\ -1.77758022 & -0.14285816 \\ 0.99219768 & -0.38437446 \\ 0.27421048 & -0.13041706 \\ 1.67580128 & 0.20949934 \\ 0.91294918 & -0.17528196 \\ -1.14457212 & -0.04641786 \\ -0.43804612 & -0.01776486 \\ -1.22382.62 & 0.16267464 \end{bmatrix} \cdot \begin{bmatrix} 0.677873 & 0.735179 \\ 0.735176 & -0.677879 \end{bmatrix} = \begin{bmatrix} 0.6899999766573 & 0.4899999834233 \\ -1.3099999556827 & -1.2099999590657 \\ 0.389999968063 & 0.9899999665083 \\ 0.0899999969553 & 0.2899999901893 \\ 0.61212695653593 & 0.35482096313253 \\ 0.4899999834233 & 0.7899999732743 \\ 0.189999935723 & -0.309999995127 \\ -0.8099999725977 & -0.8099999725977 \\ -0.3099999895127 & -0.3099999895127\\ -0.7099999759807 & -1.0099999658317 \end{bmatrix}

Entonces, para reconstruir los datos originales, seguimos:

Conjunto de datos original de la fila = Datos de la media cero de la fila + Media original 

\begin{bmatrix} 0.6899999766573 & 0.4899999834233 \\ -1.3099999556827 & -1.2099999590657 \\ 0.389999968063 & 0.9899999665083 \\ 0.0899999969553 & 0.2899999901893 \\ 0.61212695653593 & 0.35482096313253 \\ 0.4899999834233 & 0.7899999732743 \\ 0.189999935723 & -0.309999995127 \\ -0.8099999725977 & -0.8099999725977 \\ -0.3099999895127 & -0.3099999895127\\ -0.7099999759807 & -1.0099999658317 \end{bmatrix} + \begin{bmatrix} 1.81 & 1.91 \end{bmatrix} = \begin{bmatrix} 2.49 & 2.39 \\ 0.5 & 0.7 \\ 2.19 & 2.89 \\ 1.89 & 2.19 \\ 3.08 & 2.99 \\ 2.30 & 2.7 \\ 2.01 & 1.59 \\ 1.01 & 1.11 \\ 1.5 & 1.6 \\ 1.1 & 0.9 \end{bmatrix}

Entonces, para los vectores propios del primer valor propio, los datos se pueden reconstruir de manera similar al conjunto de datos original. Por lo tanto, podemos decir que el componente principal del conjunto de datos es 1.28403 seguido de  0.0490834 \lambda_1             \lambda_2

Publicación traducida automáticamente

Artículo escrito por versatile1990 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *