PCA · REDUÇÃO DE DIMENSIONALIDADE

Como transformar muitas colunas em poucas

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

Por que reduzir dimensionalidade?

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.

1

Visualização

É fácil desenhar dados em 2D ou 3D. Com 50 variáveis, não existe uma visualização espacial direta.

2

Redundância

Variáveis diferentes podem carregar informações parecidas. O PCA tenta concentrar padrões relacionados em menos componentes.

3

Processamento

Menos dimensões podem significar menos dados para armazenar, transmitir e fornecer a outros algoritmos.

Ideia central: reduzir dimensionalidade significa representar os mesmos objetos usando menos números, tentando perder o mínimo possível da estrutura dos dados.

2 · EXEMPLO

Três notas para representar cada aluno

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.

AlunoMatemáticaFísicaProgramação
A989
B887
C768
D454
E343
F232
Antes do PCA3 dimensões
MatemáticaFísicaProgramação
→
Depois do PCA2 dimensões
PC1PC2
Importante: PC1 e PC2 não são duas colunas escolhidas entre as três. Eles são novos valores construídos a partir das três notas.

3 · VEJA A REDUÇÃO

O mesmo conjunto de alunos: de 3D para 2D

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.

Matemática Programação Física ABCDEF Cada ponto precisa de 3 coordenadas.

Antes: cada aluno é representado por (Matemática, Física, Programação).

PC1 PC2 O PCA encontra um novo plano que acompanha o padrão principal da nuvem.

O PCA procura novos eixos que preservem o máximo possível da variação existente nos dados.

Cada ponto é “encostado” no plano. A pequena distância até o plano é a informação perdida.

Reduzir dimensão = projetar os pontos em um espaço menor.

PC1 PC2 ABCDEF Agora cada aluno precisa somente de duas coordenadas: (PC1, PC2).

Depois: 3 números por aluno viraram 2 números por aluno.

4 · O QUE FOI PRESERVADO?

Reduzir é útil quando a perda é pequena

O PCA informa quanto da variação dos dados cada componente consegue representar. Isso ajuda a decidir quantas dimensões vale a pena manter.

Variância explicada

PC1
97,33%
PC2
2,61%
PC3
0,06%
PC1 + PC2 ≈ 99,94%
Ao manter somente duas dimensões, este exemplo preserva praticamente toda a variação observada.
A decisão

Vale a pena descartar PC3?

Neste conjunto, PC3 representa cerca de 0,06% da variação. Por isso, usar apenas PC1 e PC2 é uma compressão muito eficiente.

3números por aluno
→
2números por aluno
→
99,94%da variância mantida

5 · COMO O PCA FAZ ISSO?

Visão superficial do algoritmo

Não precisamos fazer as contas manualmente para entender o processo. Conceitualmente, o PCA faz quatro coisas.

1

Centraliza os dados

Move o conjunto para ficar centrado em torno da média.

2

Encontra os padrões principais

Descobre as direções em que os dados apresentam maior variação.

3

Ordena por importância

PC1 preserva mais variação, depois PC2, depois PC3 e assim por diante.

4

Projeta os dados

Mantém apenas a quantidade de componentes escolhida e gera uma nova tabela reduzida.

Para esta aula, basta guardar: o PCA procura novos eixos que resumam os dados. Nós escolhemos quantos desses eixos queremos manter.

6 · USANDO UMA BIBLIOTECA

Fazendo 3D → 2D com scikit-learn

A biblioteca executa a parte matemática. Nós informamos os dados e dizemos que queremos apenas 2 componentes.

Python · scikit-learnPCA(n_components=2)
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())

Nova tabela

AlunoPC1PC2
A5,471−0,100
B3,5731,082
C2,679−1,197
D−2,1970,283
E−3,9080,071
F−5,619−0,140

O que ler do resultado?

pca.explained_variance_ratio_ → [0.97333739, 0.02606094] soma → 0.99939833 ≈ 99,94%

PC1 explica cerca de 97,33% da variação. PC2 acrescenta aproximadamente 2,61%. Juntos, os dois componentes preservam cerca de 99,94%.

Atenção à escala: o `PCA` do scikit-learn centraliza os dados, mas não padroniza automaticamente cada variável. Neste exemplo, as três notas estão na mesma escala. Em bases com unidades muito diferentes, normalmente avaliamos a padronização antes do PCA.

7 · RESUMO

O que você precisa lembrar

01

PCA cria novas dimensões

Ele não simplesmente escolhe algumas colunas da tabela original.

02

As primeiras são as mais importantes

PC1, PC2, PC3... aparecem ordenados pela quantidade de variação que conseguem representar.

03

Reduzimos mantendo as primeiras

Escolhemos menos componentes quando eles preservam uma quantidade aceitável da informação.

Em uma frase: PCA é uma técnica que troca muitas variáveis por um conjunto menor de componentes, tentando preservar o máximo possível da variação presente nos dados.