Principal Component Analysis (PCA)
A análise de componentes principais (PCA) projeta os dados nas direções ortogonais que capturam a maior variância. Como funciona, como escolher k, aplicações e código.
A análise de componentes principais (PCA) é uma técnica linear de redução de dimensionalidade que reexpressa os dados como novas variáveis não correlacionadas, chamadas componentes principais, ordenadas pela quantidade de variância dos dados que cada uma capta. Manter apenas os primeiros componentes comprime muitas características correlacionadas num pequeno conjunto, preservando a maior parte da informação. Karl Pearson apresentou o método em 1901, e Harold Hotelling desenvolveu-o mais tarde e deu-lhe o nome em 1933. A PCA é uma técnica não supervisionada que ignora os rótulos e serve como etapa padrão de pré-processamento de dados, forma rápida de visualizar dados de alta dimensão em duas ou três dimensões e referência para compressão e remoção de ruído na aprendizagem automática.
Como funciona a PCA#
A PCA começa por centrar cada característica, subtraindo a respetiva média. O primeiro componente principal é a direção em que os dados centrados variam mais, e cada componente seguinte é a direção de maior variância restante, ortogonal a todos os anteriores. Os componentes são os vetores próprios da matriz de covariância dos dados, e os valores próprios correspondentes são as variâncias ao longo dessas direções; as bibliotecas calculam ambos através da decomposição em valores singulares (SVD) dos dados centrados, que é numericamente mais estável do que formar a matriz de covariância. Projetar os dados nos k componentes principais dá a representação reduzida, e mapeá-la de volta reconstrói uma aproximação do original. Entre todas as projeções lineares para k dimensões, a PCA produz o menor erro quadrático de reconstrução.
A variância depende das unidades, pelo que as características medidas em escalas diferentes, como o rendimento em dólares e a idade em anos, são primeiro normalizadas; caso contrário, a característica com o maior intervalo numérico domina o primeiro componente. O número de componentes k costuma ser escolhido a partir da proporção de variância explicada, mantendo componentes até a sua proporção cumulativa atingir um objetivo como 95%, ou a partir do cotovelo num gráfico scree da variância por componente.
A PCA do scikit-learn aceita diretamente um objetivo de variância. Este exemplo comprime imagens de dígitos manuscritos de 8×8:
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 1,797 handwritten digits, each an 8x8 image flattened to 64 pixel values
X, _ = load_digits(return_X_y=True)
# Keep the fewest components that explain 95% of the variance
pca = PCA(n_components=0.95)
X_reduced = pca.fit_transform(X)
print(f"{X.shape[1]} features -> {pca.n_components_} components")
print(f"First two components: {pca.explained_variance_ratio_[:2].sum():.1%} of the variance")Vinte e nove componentes preservam 95% da variância dos 64 píxeis, reduzindo o tamanho da entrada para menos de metade, e os dois primeiros componentes, por si só, contêm 28,5%. A variância concentra-se porque os píxeis vizinhos estão fortemente correlacionados e os píxeis ao longo das extremidades esquerda e direita das imagens quase não variam.
Limitações#
A PCA encontra apenas estruturas lineares, por isso dados que se encontram numa superfície curva precisam de mais componentes do que a sua dimensionalidade real. Cada componente combina todas as características originais, o que dificulta a interpretação dos componentes, e as distâncias ao quadrado permitem que alguns valores atípicos os distorçam. Uma variância elevada também não significa maior utilidade: uma direção de baixa variância pode conter o sinal que separa duas classes, por isso descartá-la pode prejudicar um classificador, mesmo que pouca variância se perca. Reduzir muitas características a apenas algumas continua a ajudar a combater a maldição da dimensionalidade, em que os modelos precisam de muito mais amostras para generalizar à medida que o número de características aumenta, e limita o sobreajuste quando há muitas características e poucas amostras.
PCA para embeddings em visão computacional#
Os modelos de visão descrevem cada imagem ou objeto com um embedding, um vetor com centenas de números, e a PCA é um primeiro passo comum para visualizar, fazer agrupamento ou comprimir esses vetores. Os modelos YOLO26 devolvem um embedding por imagem através de model.embed(), e projetar esses vetores nas duas primeiras componentes principais fornece um mapa linear rápido de como um modelo treinado à medida separa as suas classes. Reduzir os embeddings armazenados a menos dimensões também diminui o índice de uma base de dados vetorial e acelera a pesquisa vetorial.
Aplicações#
- Reconhecimento facial: O método de faces próprias de Turk e Pentland (1991) representava cada rosto pelas suas coordenadas nas componentes principais de um conjunto de imagens faciais e reconhecia as pessoas comparando essas coordenadas.
- Deteção de anomalias: A monitorização de processos industriais ajusta a PCA aos dados dos sensores durante o funcionamento normal e emite um alarme quando uma nova leitura é reconstruída com pouca precisão ou fica muito afastada ao longo das componentes mantidas.
- Genética populacional: A PCA dos dados de genótipos resume a ancestralidade e, num estudo de 2008 com 1.387 europeus, as duas primeiras componentes reproduziram um mapa reconhecível da Europa.
- Risco da taxa de juro: As alterações na curva de rendimentos das obrigações são dominadas por três componentes a que os analistas chamam nível, inclinação e curvatura, por isso os modelos de risco acompanham três números em vez de cada prazo de vencimento.
PCA vs. técnicas relacionadas#
- t-SNE e UMAP: Métodos não lineares concebidos para visualização que preservam as vizinhanças locais, fazendo com que os grupos se separem mais claramente, enquanto as distâncias entre grupos afastados perdem significado. O t-SNE do Scikit-learn não tem uma transformação para novos pontos, enquanto uma PCA ajustada projeta novos dados com uma única multiplicação de matrizes.
- Autoencoders: Redes neuronais que comprimem e reconstroem dados e podem aprender estruturas não lineares. Um autoencoder linear treinado com erro quadrático aprende o mesmo subespaço que a PCA.
- Seleção e extração de características: A seleção de características mantém um subconjunto das colunas originais, que continuam a ser interpretáveis, enquanto a PCA, um método clássico de extração de características, cria novas características que as combinam todas.
- Análise discriminante linear (LDA): Uma técnica relacionada e supervisionada que escolhe direções que maximizam a separação entre classes em vez da variância total e produz, no máximo, menos uma componente do que o número de classes.










