PCA en Sklearn

PCA en Sklearn
PCA (Análisis de componentes principales) es un algoritmo matemático que transforma las observaciones de las variables correlacionadas en un conjunto de valores de variables linealmente no correlacionadas, conocidas como componentes principales. PCA es uno de los algoritmos más populares para la reducción de la dimensionalidad. Karl Pearson (Li, 1901) inventó PCA en 1901, definiéndolo como "identificar líneas y planos de ajuste más cercano a los sistemas de puntos en el espacio".

Discutiremos los detalles de PCA y su implementación utilizando Sklearn.

¿Qué es PCA??

El análisis de componentes principales (PCA) es un método de reducción de datos. Cuando tiene muchas medidas para cada caso, pero algunas de ellas están correlacionadas entre sí, este método se utiliza. Los componentes principales usan la correlación para disminuir el número de variables requeridas para caracterizar cada situación adecuadamente dependiendo de los resultados. Pero un análisis de componentes principales probablemente revelará que, a pesar de las diez medidas, solo se estaban midiendo tres variables. Es más probable que tengan sprint, salto y lanzamiento de habilidades, tres en lugar de diez características. Los componentes principales proporcionarían coeficientes para cada uno de los diez puntajes, lo que indica cuánto entra cada puntaje en la nueva carrera, salta y puntajes. Las tres puntuaciones compuestas también le dirían cuánto de la variación total se explica. Trabajar con tres variables es más fácil que trabajar con 10, y si representan la mayoría de la fluctuación, ha capturado toda la información de los diez puntajes en tres.

La técnica se vuelve mucho más útil cuando tienes cientos de medidas. Sin embargo, podemos encontrar un problema: algunas de nuestras propiedades de entrada están conectadas. Dependiendo de la fuerza de la asociación, esto podría indicar que incluimos dimensiones adicionales en nuestros datos de entrada cuando podríamos adquirir la misma cantidad de información con menos. PCA proporciona una técnica sistemática para determinar qué combinaciones de características parecen ser más responsables de la varianza de datos que otras y proporciona algunas recomendaciones para reducir el número de dimensiones en nuestra entrada. Esto no quiere decir que PCA nos diga qué características no son necesarias; Más bien, nos muestra cómo integrar las características en un subespacio más pequeño sin perder (mucho) información. Tradicionalmente, la reducción del número de dimensiones antes de alimentar los datos en algoritmos ML ha sido útil porque reduce la complejidad y el tiempo de procesamiento. Sin embargo, debo señalar que PCA no es una panacea, sino una herramienta fantástica cuando funciona.

Ejemplo 1

Considere el caso del conjunto de datos D, que contiene datos bidimensionales a lo largo del y = x línea. Estos datos se representan en dos dimensiones, con un X y Y punto para cada punto de datos. El vector se identificaría como la dirección de la varianza máxima a través de PCA y este vector se utilizaría como el nuevo eje X. Ahora podemos representar el conjunto de datos D en solo una dimensión. Como resultado, PCA es una técnica de reducción de dimensionalidad centrada en la ubicación de los vectores de varianza más grandes.

Ejemplo 2

Supongamos que sus datos están a lo largo de una línea en dos dimensiones. En ese caso, PCA reconoce rápidamente que sus X e Y están asociados y desarrolla un nuevo sistema de coordenadas ortogonales para maximizar la varianza en la primera coordenada. Como resultado, el segundo componente (primario) no tiene capacidad predictiva y probablemente pueda eliminarla de sus modelos sin causar demasiado daño. Ha logrado proyectar dos dimensiones en una sin perder mucha información en este método. Si bien puede hacer esto visualmente en dos dimensiones, puede ser un poco más difícil en el norte dimensión.

Características de PCA

Transformar los datos a una escala comparable. Algunas características en un conjunto de datos pueden ser extremadamente altas (1 a 100). Por el contrario, otros son extremadamente bajos (0 a 1), lo que resulta en características altas que tienen un mayor impacto en las predicciones de salida que los datos de características bajas.

Para identificar las correlaciones entre todas las características, calcule la covarianza de datos.

Luego, encuentre los valores propios y los vectores propios de la matriz de covarianza. Después de eso, clasifique los vectores propios disminuyendo los valores propios y seleccione los Kvenvectores K con los valores propios más altos.

Para transformar las muestras en el nuevo subespacio, use esta matriz de vector propio.

Se puede usar para averiguar si hay correlaciones entre sus variables. Si tiene variables tridimensionales y su plano bidimensional de mejor ajuste las captura con precisión, entonces es probable que los valores en la tercera dimensión sean una función lineal de los dos primeros, más o menos un poco de ruido gaussiano.

En lugar de transmitir puntos de datos N-dimensionales, puede usar PCA para comunicar coordenadas M-dimensionales en un subespacio de mejor ajuste si necesita transmitir datos (más la ecuación del subespacio). Se puede usar para comprimir datos también. Si el ajuste es perfecto, no perderá información; Si está cerca, perderás un poco.

Debido a que muchos algoritmos de aprendizaje automático funcionan mejor cuando cada variable agrega nueva información, se usa con frecuencia en el aprendizaje automático para encontrar y eliminar variables redundantes en su conjunto de datos.

No siempre encuentra duplicación real y no lineal. Si interpreta a PCA estadísticamente, debe hacer algunas suposiciones sobre las relaciones subyacentes entre las variables / su ruido. Aún así, es una herramienta muy valiosa, incluso si algunas suposiciones no son ideales.

Implementación de PCA en Sklearn

importar numpy como np
de Sklearn.descomposición de importación PCA
X = NP.Array ([[1, 2], [2, 1], [3, 2], [2, 3], [4, 5], [5, 4]])
PCA = PCA (N_Components = 2)
PCA.Fit (x)
Imprimir (PCA.explicado_variance_ratio_)
Imprimir (PCA.singular_values_)

Producción
[0.86153846 0.13846154]
[4.3204938 1.73205081]

Conclusión

Este artículo discutió el análisis de componentes principales y su implementación utilizando Sklearn. Sklearn es una popular biblioteca de Python utilizada para desarrollar modelos de aprendizaje automático. PCA reduce la maldición de la dimensionalidad dirigiendo datos de alta dimensión en dimensiones más bajas sin perder mucha información. PCA se puede implementar utilizando Sklearn con 'Sklearn.clase de descomposición.