Visualizando a transformação do PCA

Unsupervised Learning em Python

Benjamin Wilson

Director of Research at lateral.io

Redução de dimensionalidade

  • Armazenamento e computação mais eficientes
  • Remove features menos informativas ("ruído")
  • ... que atrapalham tarefas preditivas (classificação, regressão)
Unsupervised Learning em Python

Análise de Componentes Principais

  • PCA = "Principal Component Analysis"
  • Técnica fundamental de redução de dimensionalidade
  • Primeiro passo: "decorrelação" (visto aqui)
  • Segundo passo: redução de dimensão (veremos depois)
Unsupervised Learning em Python

PCA alinha dados aos eixos

  • Rotaciona as amostras para alinhar aos eixos
  • Centraliza as amostras para média 0
  • Nenhuma informação é perdida

dispersão de dados de vinhos com eixos rotacionados

Unsupervised Learning em Python

PCA segue o padrão fit/transform

  • PCA é um componente do scikit-learn, como KMeans ou StandardScaler
  • fit() aprende a transformação a partir dos dados
  • transform() aplica a transformação aprendida
  • transform() também pode ser aplicado a novos dados
Unsupervised Learning em Python

Usando PCA do scikit-learn

  • samples = array com duas features (total_phenols e od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Unsupervised Learning em Python

Features do PCA

  • Linhas de transformed correspondem às amostras
  • Colunas de transformed são as "features do PCA"
  • Cada linha traz os valores das features de PCA da amostra
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Unsupervised Learning em Python

Features do PCA não são correlacionadas

  • As features do conjunto costumam ser correlacionadas, ex.: total_phenols e od280
  • O PCA alinha os dados aos eixos
  • As features resultantes do PCA não são linearmente correlacionadas ("decorrelação")

dispersão de dados de vinhos com eixos rotacionados

Unsupervised Learning em Python

Correlação de Pearson

  • Mede correlação linear entre features
  • Valor entre -1 e 1
  • 0 indica ausência de correlação linear

3 gráficos de dispersão com correlação 0,7, 0 e -0,7

Unsupervised Learning em Python

Componentes principais

  • "Componentes principais" = direções de variância
  • O PCA alinha os componentes principais aos eixos

dispersão de vinhos com 2 setas vermelhas mostrando a direção dos componentes principais (eixos rotacionados)

Unsupervised Learning em Python

Componentes principais

  • Disponíveis no atributo components_ do objeto PCA
  • Cada linha define o deslocamento a partir da média
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Unsupervised Learning em Python

Vamos praticar!

Unsupervised Learning em Python

Preparing Video For Download...