¿Qué es el análisis de componentes principales o PCA?
El Análisis de Componentes Principales (PCA) es una técnica fundamentalmente dirigida a reducir la dimensionalidad de grandes conjuntos de datos, permitiendo simplificar su estructura sin perder información relevante. En el contexto del machine learning, muchos conjuntos de datos contienen numerosas variables, algunas de las cuales pueden estar correlacionadas o no ser significativas para el modelo. Así, PCA se convierte en una herramienta esencial al permitirnos identificar y retener solo aquellas variables que concentran la información mínima necesaria.
¿Cómo se relaciona el álgebra lineal con PCA?
El PCA se fundamenta en conceptos de álgebra lineal, esencialmente en la proyección de vectores y en el cálculo de varianzas en diversas direcciones. La proyección de un vector sobre otro se refiere a la "sombra" o representación de un vector en la dirección de otro. Por ejemplo, considerando los vectores a = (2, 2) y b = (1, 0), la proyección de a sobre b resulta en el vector (2, 0). Este concepto es elemental para determinar cómo las variables de un conjunto de datos se distribuyen en diferentes direcciones.
a_p = (a · b) / |b|
a_p = (2 * 1 + 2 * 0) / 1
a_p = 2, resultando en la dirección de b, es decir, (2, 0)
¿Cómo se capturan las varianzas en un conjunto de datos?
Para entender mejor el papel del álgebra lineal en PCA, consideremos cómo se captura la varianza de los datos en diversas direcciones. Cada dirección de proyección puede servir para abordar cómo varían los datos, y hay direcciones que capturan mejor esa varianza. Si se coloca un vector a lo largo de la tendencia de un conjunto de datos dispersos, su proyección maximizará las varianzas observadas en esa dirección.
El cálculo de la varianza a lo largo de una dirección implica el uso de la matriz de covarianza del conjunto de datos. De forma matemática, se puede expresar como:
Varianza_dirección = (b^T) * Covarianza * b
Donde b es la dirección de interés. Descomponiendo la matriz de covarianza en términos de valores y vectores propios, se puede obtener un entendimiento profundo de cómo se distribuyen las varianzas a través de las componentes principales, capturando la mayor información posible con la menor cantidad de variables.
¿Qué papel juegan los valores y vectores propios en PCA?
En el PCA, los valores propios nos indican cuánta varianza tiene cada vector propio. Estos vectores y valores propios determinan las direcciones y magnitudes respectivas en las cuales se capturan la varianza principal de los datos. La matriz de covarianza, al descomponerse en valores y vectores propios, nos ayuda a identificar dónde se concentra la mayor cantidad de información del conjunto de datos.
Covarianza = P * Λ * P^T
Donde Λ es la matriz diagonal de valores propios y P es la matriz de vectores propios. Cada componente principal del PCA equivale a un vector propio, representando una dirección en la cual se maximiza la varianza.
¿Cómo se aplica PCA para la reducción de dimensionalidad?
El PCA se emplea para identificar componentes principales de los datos, asegurando una representación simplificada. Por ejemplo, si tenemos dos variables x1 y x2 que están alineadas diagonalmente, y tras calcular sus vectores y valores propios, determinamos que una dirección particular contiene la mayoría de la varianza, podríamos representar estas dos variables usando una sola componente nueva, reduciendo la dimensionalidad del problema.
En el próximo encuentro con Python, llevaremos estas matemáticas a la práctica, simplificando cálculos complejos y enfatizando el poder del PCA para reducir dimensionalidad. A través de unos cuantificados comandos de Python, lograremos realizar este análisis y traducir grandes cantidades de datos en información compacta y significativa. ¡Espero verte en nuestro próximo paso hacia la implementación del PCA!
Análisis de Componentes Principales (PCA) y Proyección de Vectores
Análisis de Componentes Principales (PCA) y Proyección de Vectores
Recursos
Resumen
¿Qué es el análisis de componentes principales o PCA?
El Análisis de Componentes Principales (PCA) es una técnica fundamentalmente dirigida a reducir la dimensionalidad de grandes conjuntos de datos, permitiendo simplificar su estructura sin perder información relevante. En el contexto del machine learning, muchos conjuntos de datos contienen numerosas variables, algunas de las cuales pueden estar correlacionadas o no ser significativas para el modelo. Así, PCA se convierte en una herramienta esencial al permitirnos identificar y retener solo aquellas variables que concentran la información mínima necesaria.
¿Cómo se relaciona el álgebra lineal con PCA?
El PCA se fundamenta en conceptos de álgebra lineal, esencialmente en la proyección de vectores y en el cálculo de varianzas en diversas direcciones. La proyección de un vector sobre otro se refiere a la "sombra" o representación de un vector en la dirección de otro. Por ejemplo, considerando los vectores a = (2, 2) y b = (1, 0), la proyección de a sobre b resulta en el vector (2, 0). Este concepto es elemental para determinar cómo las variables de un conjunto de datos se distribuyen en diferentes direcciones.
a_p = (a · b) / |b|
a_p = (2 * 1 + 2 * 0) / 1
a_p = 2, resultando en la dirección de b, es decir, (2, 0)
¿Cómo se capturan las varianzas en un conjunto de datos?
Para entender mejor el papel del álgebra lineal en PCA, consideremos cómo se captura la varianza de los datos en diversas direcciones. Cada dirección de proyección puede servir para abordar cómo varían los datos, y hay direcciones que capturan mejor esa varianza. Si se coloca un vector a lo largo de la tendencia de un conjunto de datos dispersos, su proyección maximizará las varianzas observadas en esa dirección.
El cálculo de la varianza a lo largo de una dirección implica el uso de la matriz de covarianza del conjunto de datos. De forma matemática, se puede expresar como:
Varianza_dirección = (b^T) * Covarianza * b
Donde b es la dirección de interés. Descomponiendo la matriz de covarianza en términos de valores y vectores propios, se puede obtener un entendimiento profundo de cómo se distribuyen las varianzas a través de las componentes principales, capturando la mayor información posible con la menor cantidad de variables.
¿Qué papel juegan los valores y vectores propios en PCA?
En el PCA, los valores propios nos indican cuánta varianza tiene cada vector propio. Estos vectores y valores propios determinan las direcciones y magnitudes respectivas en las cuales se capturan la varianza principal de los datos. La matriz de covarianza, al descomponerse en valores y vectores propios, nos ayuda a identificar dónde se concentra la mayor cantidad de información del conjunto de datos.
Covarianza = P * Λ * P^T
Donde Λ es la matriz diagonal de valores propios y P es la matriz de vectores propios. Cada componente principal del PCA equivale a un vector propio, representando una dirección en la cual se maximiza la varianza.
¿Cómo se aplica PCA para la reducción de dimensionalidad?
El PCA se emplea para identificar componentes principales de los datos, asegurando una representación simplificada. Por ejemplo, si tenemos dos variables x1 y x2 que están alineadas diagonalmente, y tras calcular sus vectores y valores propios, determinamos que una dirección particular contiene la mayoría de la varianza, podríamos representar estas dos variables usando una sola componente nueva, reduciendo la dimensionalidad del problema.
En el próximo encuentro con Python, llevaremos estas matemáticas a la práctica, simplificando cálculos complejos y enfatizando el poder del PCA para reducir dimensionalidad. A través de unos cuantificados comandos de Python, lograremos realizar este análisis y traducir grandes cantidades de datos en información compacta y significativa. ¡Espero verte en nuestro próximo paso hacia la implementación del PCA!
En el curso de Curso de Álgebra Lineal Aplicada para Machine Learning se ven más a fondo las bases de álgebra lineal y además al final se hace un proyecto aplicado a imágenes donde aplicando PCA con 44 componentes logramos capturar el 80 de la información. Les dejo el curso para que lo cursen, 100% recomendado:
Recomiendo a todos que vean estos videos que han sido compartidos previamente acá en los comentarios. Son super útiles para entender los detalles de esta clase:
Lo que voy entendiendo a lo largo del curso es que lo que tenemos que saber es el proceso lógico porque la "fuerza bruta" de las matemáticas la pone Python.
Aunque la explicación de la proyección de un vector es correcta, el dibujo no corresponde con las escalas numéricas de los vectores, lo que puede generar un poco de confusión, por lo que hice por mi cuenta el dibujo del inicio a escala para que quede un poco más claro.
Una de las cosas que podemos ver más claramente con esta gráfica es que la proyección de un vector sobre otro puede ser más grande que el vector sobre el que está siendo proyectado, la única condición que debe seguir si o si el vector proyectado es que debe ir en la misma dirección que el vector sobre el cual se está proyectando.
El análisis de componentes principales (Principal Component Analysis) o PCA es una herramienta para el análisis exploratorio de los datos que permite visualizar la variación presente de un set de datos con muchas variables.
De manera general, el PCA es un tipo de transformación lineal de un set de datos con un cierto número de variables. Dicha transformación ajusta el est de datos a un nuevo sistema de coordenadas de manera que la mayor propoción de la varianza se explica en la primera coordenada y cada coordenada subsiguiente es ortogonal a la anterior y explica una menor variabilidad.
¿Cuando se usa un PCA?
Una de las principales aplicaciones de PCA es la reducción de dimensionalidad (es decir, variables): cuando contamos con un gran número de variables cuantitativs posiblemente correlacionadas (indicativo de exstencia de información redundante), un PCA permite “reducirlas” a un número menor de variables transformadas (componentes principales) que expliquen gran parte de la variabilidad de los datos.