Visualização
É fácil desenhar dados em 2D ou 3D. Com 50 variáveis, não existe uma visualização espacial direta.
PCA · REDUÇÃO DE DIMENSIONALIDADE
O objetivo do PCA não é “apagar colunas”. Ele cria novas dimensões que resumem as variáveis originais e tenta preservar o máximo possível da informação contida nos dados.
1 · O PROBLEMA
Em Machine Learning, cada coluna pode representar uma dimensão. Com poucas colunas isso é simples; com dezenas, centenas ou milhares, analisar, visualizar e processar os dados pode ficar mais difícil.
É fácil desenhar dados em 2D ou 3D. Com 50 variáveis, não existe uma visualização espacial direta.
Variáveis diferentes podem carregar informações parecidas. O PCA tenta concentrar padrões relacionados em menos componentes.
Menos dimensões podem significar menos dados para armazenar, transmitir e fornecer a outros algoritmos.
2 · EXEMPLO
Vamos usar três variáveis na mesma escala: Matemática, Física e Programação. Cada aluno precisa inicialmente de três números para ser representado.
| Aluno | Matemática | Física | Programação |
|---|---|---|---|
| A | 9 | 8 | 9 |
| B | 8 | 8 | 7 |
| C | 7 | 6 | 8 |
| D | 4 | 5 | 4 |
| E | 3 | 4 | 3 |
| F | 2 | 3 | 2 |
3 · VEJA A REDUÇÃO
Use os botões para acompanhar a transformação. O objetivo aqui não é mostrar a matemática interna, mas visualizar o que significa reduzir a dimensão.
Antes: cada aluno é representado por (Matemática, Física, Programação).
O PCA procura novos eixos que preservem o máximo possível da variação existente nos dados.
Reduzir dimensão = projetar os pontos em um espaço menor.
Depois: 3 números por aluno viraram 2 números por aluno.
4 · O QUE FOI PRESERVADO?
O PCA informa quanto da variação dos dados cada componente consegue representar. Isso ajuda a decidir quantas dimensões vale a pena manter.
Neste conjunto, PC3 representa cerca de 0,06% da variação. Por isso, usar apenas PC1 e PC2 é uma compressão muito eficiente.
5 · COMO O PCA FAZ ISSO?
Não precisamos fazer as contas manualmente para entender o processo. Conceitualmente, o PCA faz quatro coisas.
Move o conjunto para ficar centrado em torno da média.
Descobre as direções em que os dados apresentam maior variação.
PC1 preserva mais variação, depois PC2, depois PC3 e assim por diante.
Mantém apenas a quantidade de componentes escolhida e gera uma nova tabela reduzida.
6 · USANDO UMA BIBLIOTECA
A biblioteca executa a parte matemática. Nós informamos os dados e dizemos que queremos apenas 2 componentes.
import numpy as np
from sklearn.decomposition import PCA
# 6 alunos × 3 variáveis
X = np.array([
[9, 8, 9],
[8, 8, 7],
[7, 6, 8],
[4, 5, 4],
[3, 4, 3],
[2, 3, 2]
])
# Quero reduzir de 3 dimensões para 2
pca = PCA(n_components=2)
# Aprende os componentes e já transforma os dados
X_reduzido = pca.fit_transform(X)
print(X_reduzido)
print(pca.explained_variance_ratio_)
print(pca.explained_variance_ratio_.sum())
| Aluno | PC1 | PC2 |
|---|---|---|
| A | 5,471 | −0,100 |
| B | 3,573 | 1,082 |
| C | 2,679 | −1,197 |
| D | −2,197 | 0,283 |
| E | −3,908 | 0,071 |
| F | −5,619 | −0,140 |
PC1 explica cerca de 97,33% da variação. PC2 acrescenta aproximadamente 2,61%. Juntos, os dois componentes preservam cerca de 99,94%.
7 · RESUMO
Ele não simplesmente escolhe algumas colunas da tabela original.
PC1, PC2, PC3... aparecem ordenados pela quantidade de variação que conseguem representar.
Escolhemos menos componentes quando eles preservam uma quantidade aceitável da informação.