El análisis de componentes principales es un proceso esencial de reducción de la dimensionalidad en el aprendizaje automático. Esta técnica incluye una sencilla operación matricial de la estadística y el álgebra lineal. La razón para utilizar este método es calcular, analizar los datos originales y generar una proyección en la dimensión menos. También se puede utilizar esta técnica para encontrar la proyección del mismo número. Este artículo le ayudará a entender el concepto de Análisis de Componentes Principales y cómo ejecutar el análisis en R y Python.

Análisis de Componentes Principales

El PCA o Análisis de Componentes Principales ayuda a disminuir la dimensionalidad de los puntos de datos masivos en formas más simples. Esta propiedad del PCA lo convierte en un método de reducción de la dimensionalidad. Funciona transformando las variables en otras más pequeñas eliminando la información principal del conjunto grande.
Al reducir las variables del conjunto de datos, se reduce la precisión de los datos. Para simplificar el conjunto de datos, hay que aceptar el riesgo de una baja precisión.
Los conjuntos de datos más pequeños le ayudarán a visualizar y explorar el estado con facilidad. De este modo, el algoritmo de aprendizaje automático analizará los datos de forma rápida y sencilla, manteniendo la relevancia de los datos. En palabras sencillas, el PCA reducirá las variables y conservará la información importante para analizar fácilmente los datos.

Ejemplo de análisis de componentes principales

Ejemplo de análisis de componentes principales en 2D

Puede entender el concepto de análisis de componentes principales en dos dimensiones. Estas dimensiones son la altura y el peso. Usted trazará el conjunto de datos en el plano como puntos. Pero cuando se extraigan las variaciones, el PCA identificará un nuevo sistema de coordenadas. En este sistema, cada punto contendrá un valor x y un valor y. Los ejes no tienen ningún significado físico. Estos ejes son los componentes principales y la combinación de la altura y el peso. De esta manera, incluso los ejes individuales tendrán muchas variaciones.

Ejemplo de Análisis de Componentes Principales en 3D

El Análisis de Componentes Principales se vuelve más útil al tener tres dimensiones. De esta manera, puede analizar los datos desde diferentes ángulos. Por ejemplo, puede ver los datos en 2D después de trazarlos en el plano 3D. Al girar el ángulo de la cámara, puede visualizar los datos desde el mejor punto de vista. La transformación de PCA asegura que:

  • Hay más variaciones en el eje horizontal o PC1.
  • Hay más variaciones en el segundo eje vertical o PC2,
  • Hay el menor número de variaciones en el tercer eje o PC3.
    De este modo, se puede descartar fácilmente el tercer eje. Los datos en este eje no son tan importantes como el eje horizontal y el eje vertical en el plano.

Análisis de componentes principales en R

Puede calcular el análisis de componentes principales en R utilizando las funciones princomp() y prcomp(). Estas funciones permiten un análisis fácil y directo. Estas dos funciones se diferencian en los métodos para calcular el ACP.

Función Prcomp() para calcular el PCA

Puede elegir este método para el análisis de componentes principales en R para obtener un número preciso. El método calcula el PCA utilizando la descomposición del valor singular de la matriz de datos. No incluirá eigen en la matriz de covarianza.

Función Princomp() para calcular el PCA

Este método utiliza eigen en la matriz de covarianza o correlación. Este método se ejecuta a través de la compatibilidad por el resultado de S-PLUS.

  • pilotos.pca<-prcomp(pilotos[,2:7])
  • pilotos.pca
  • ## Desviaciones estándar (1, .., p=6):
  • • ## [1] 41.497499 29.637102 20.035932 16.157875 11.353640 7.097781
  • • ##
  • ## Rotación (n x k) = (6 x 6):
  • ## PC1 PC2 PC3 PC4
  • ## Inteligencia 0,21165160 -0,38949336 0,88819049 -0,03082062
  • ## Relaciones de forma -0,03883125 -0,06379320 0,09571590 0,19128493
  • ## Dinamómetro 0.08012946 0.06602004 0.08145863 0.12854488
  • ## Punteado 0.77552673 0.60795970 0.08071120 -0.08125631
  • ## Coordinación sensorial.motora -0.09593926 -0.01046493 0.01494473 -0.96813856
  • ## Perservación 0.58019734 -0.68566916 -0.43426141 -0.04518327
  • ## PC5 PC6
  • ## Inteligencia -0.04760343 -0.10677164
  • ## Relaciones de forma -0,14793191 0,96269790
  • ## Dinamómetro 0.97505667 0.12379748
  • ## Punteado -0.10891968 0.06295166
  • ## Coordinación sensorial.motora 0.10919120 0.20309559
  • ## Perservación 0.03644629 0.03572141
    También puede generar salidas de la proporción de la varianza con la ayuda del método de resumen prcomp() que explican los componentes.
  • summary(pilotos.pca)
  • ## Importancia de los componentes:
  • ## PC1 PC2 PC3 PC4 PC5 PC6
  • ## Desviación estándar 41.4975 29.6371 20.0359 16.15788 11.35364 7.09778
  • ## Proporción de la varianza 0,5003 0,2552 0,1166 0,07585 0,03745 0,01464
  • ## Proporción acumulada 0.5003 0.7554 0.8721 0.94792 0.98536 1.00000

Análisis de componentes principales en Python

Puede utilizar la biblioteca scikit-learn para calcular el Análisis de Componentes Principales del conjunto de datos. Este enfoque es beneficioso porque puede aplicar nuevos datos repetidamente para encontrar la proyección fácilmente después de calcular la proyección. Se especificará el número de componentes como parámetro al crear la clase.
La clase será el primer ajuste del conjunto de datos. Utilizará la función fit(), real, u otro conjunto de datos y elegirá la dimensión para encontrar la función transform(). Puede acceder a los componentes principales y a los valores propios en el análisis de componentes principales con components_attributes y explained_variance. En el ejemplo siguiente, primero se crea la instancia utilizando la clase. A continuación, ajusta los datos en una matriz de 3×2. Esto le dará acceso a los vectores y valores de la proyección. Finalmente, puedes transformar los datos reales.

  • from numpy import array
  • from numpy import mean
  • from numpy import cov
  • from numpy.linalg import eig
  • # definir una matriz
  • A = array([[4, 5], [6, 7], [8, 9]])
  • print(A)
  • # calcula la media de cada columna
  • M = media(A.T, eje=1)
  • print(M)
  • # centrar las columnas restando las medias de las columnas
  • C = A – M
  • print(C)
  • # calcular la matriz de covarianza de la matriz centrada
  • V = cov(C.T)
  • print(V)
  • # eigendecomposición de la matriz de covarianza
  • valores, vectores = eig(V)
  • print(vectores)
  • print(valores)
  • # datos del proyecto
  • P = vectores.T.dot(C.T)
  • print(P.T)
    Al ejecutar los datos de la muestra en la matriz de 3×2, encontraremos los componentes principales y sus valores. Después, encontraremos las proyecciones de la matriz real. Usando este método, identificaremos el punto flotante menor y lograremos los mismos componentes principales, proyecciones y valores singulares.
  • • [[4 5]
  • • [6 7]
  • • [8 9]][6. 7.]
  • • [[-2. -2.]
  • • [ 0. 0.]
  • • [ 2. 2.]]
  • • [[4. 4.]
  • • [4. 4.]]
  • • [[ 0.70710678 -0.70710678]
  • • [ 0.70710678 0.70710678]]
  • • [8. 0.]
  • • [[-2.82842712 0. ]
  • • [ 0. 0. ]
  • • [ 2.82842712 0. ]]

Conclusión

Puede utilizar cualquier lenguaje de programación como Python, R, C++, etc., para codificar todo el proceso y encontrar aplicaciones de Análisis de Componentes Principales. Además, también puede utilizar las bibliotecas de diferentes colaboradores y ejecutar los datos. Si la complejidad del problema no es muy alta, debería utilizar una técnica de código duro en lugar de las bibliotecas. De esta manera, puede analizar el componente principal para entender los problemas fácilmente. Cuando utilice el análisis de componentes principales en R, puede utilizar bibliotecas como prcomp, princomp, HSAUR y otras. Esto le ayuda a utilizar la aplicación directamente.