Visualizar la transformación PCA

Aprendizaje no supervisado en Python

Benjamin Wilson

Director of Research at lateral.io

Reducción de dimensión

  • Almacenamiento y cómputo más eficientes
  • Elimina características "ruido" menos informativas
  • ... que dañan tareas de predicción, p. ej., clasificación, regresión
Aprendizaje no supervisado en Python

Análisis de Componentes Principales

  • PCA = "Principal Component Analysis"
  • Técnica básica de reducción de dimensión
  • Primer paso: "decorrelación" (aquí)
  • Segundo paso: reducir dimensión (más adelante)
Aprendizaje no supervisado en Python

PCA alinea los datos con los ejes

  • Rota las muestras para alinearlas con los ejes
  • Desplaza las muestras para que tengan media 0
  • No se pierde información

diagrama de dispersión de vinos con ejes rotados

Aprendizaje no supervisado en Python

PCA sigue el patrón fit/transform

  • PCA es un componente de scikit-learn como KMeans o StandardScaler
  • fit() aprende la transformación a partir de los datos
  • transform() aplica la transformación aprendida
  • transform() también se aplica a datos nuevos
Aprendizaje no supervisado en Python

Uso de PCA de scikit-learn

  • samples = array de dos características (total_phenols y od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Aprendizaje no supervisado en Python

Características PCA

  • Las filas de transformed son muestras
  • Las columnas de transformed son las "características PCA"
  • Cada fila da los valores PCA de su muestra
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Aprendizaje no supervisado en Python

Las características PCA no se correlacionan

  • Las características del conjunto suelen correlacionar, p. ej., total_phenols y od280
  • PCA alinea los datos con los ejes
  • Las características PCA resultantes no están linealmente correlacionadas ("decorrelación")

diagrama de dispersión de vinos con ejes rotados

Aprendizaje no supervisado en Python

Correlación de Pearson

  • Mide la correlación lineal entre características
  • Valor entre -1 y 1
  • Valor 0 indica sin correlación lineal

3 diagramas de dispersión con correlación 0.7, 0 y -0.7

Aprendizaje no supervisado en Python

Componentes principales

  • "Componentes principales" = direcciones de varianza
  • PCA las alinea con los ejes

dispersión de vinos con 2 flechas rojas mostrando la dirección de los componentes principales (ejes rotados)

Aprendizaje no supervisado en Python

Componentes principales

  • Disponible como atributo components_ del objeto PCA
  • Cada fila define el desplazamiento desde la media
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Aprendizaje no supervisado en Python

¡Vamos a practicar!

Aprendizaje no supervisado en Python

Preparing Video For Download...