Análise Discriminante: Encolhimento (Shrinkage)

Continuando nossa análise detalhada da Análise Discriminante, chegamos a um conceito crucial para aplicações práticas: o encolhimento (shrinkage). Conforme discutimos anteriormente nas formulações matemáticas do LDA e QDA, a estimação precisa das matrizes de covariância é fundamental para o desempenho destes classificadores.

O Problema da Estimação de Covariância

Analogamente ao que observamos nas implementações anteriores, quando trabalhamos com dados de alta dimensionalidade ou tamanhos de amostra limitados, a estimação das matrizes de covariância torna-se desafiadora. Primordialmente, o problema surge porque:

  • O número de parâmetros a estimar cresce quadraticamente com o número de features
  • Matrizes de covariância podem tornar-se singular ou mal-condicionada
  • Estimativas de máxima verossimilhança podem ter alta variância

O Conceito de Encolhimento

O encolhimento é uma técnica de regularização que combina a matriz de covariância estimada dos dados com uma estrutura mais simples e estável. Similarmente a métodos de regularização que encontramos em regressão Ridge e Lasso, o shrinkage visa melhorar a generalização do modelo.

Formulação Matemática

Para o LDA, a matriz de covariância regularizada é dada por:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma_{empírico} + \gamma \Sigma_{estruturado}\)

Onde γ é o parâmetro de encolhimento que varia entre 0 e 1.

Tipos de Estruturas de Encolhimento

Encolhimento para a Matriz Identidade

Uma abordagem comum é encolher em direção à matriz identidade:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma + \gamma \frac{\text{tr}(\Sigma)}{d} I\)

Onde d é a dimensionalidade e tr(Σ) é o traço da matriz de covariância.

Encolhimento para Covariância Diagonal

Outra abordagem utiliza uma matriz diagonal como alvo:

\(\Sigma_{shrunk} = (1 – \gamma) \Sigma + \gamma \text{diag}(\Sigma)\)

Vantagens do Encolhimento

Conforme demonstramos nas implementações anteriores, o uso de shrinkage oferece benefícios significativos:

  • Melhora a condição numérica das matrizes de covariância
  • Reduz a variância das estimativas
  • Permite aplicação em dados de alta dimensionalidade
  • Melhora a performance de generalização

Seleção do Parâmetro de Encolhimento

O parâmetro γ controla o trade-off entre viés e variância:

  • γ = 0: Usa apenas a covariância empírica (alto risco de overfitting)
  • γ = 1: Usa apenas a estrutura alvo (alto viés, baixa variância)
  • Valores intermediários: Balanceiam viés e variância

Implementação no scikit-learn

No scikit-learn, o encolhimento está disponível através do parâmetro shrinkage nas classes LinearDiscriminantAnalysis e QuadraticDiscriminantAnalysis. Ademais, o parâmetro shrinkage_factor pode ser estimado automaticamente usando validação cruzada.

Exemplo Prático em Python

Para ilustrar os efeitos do encolhimento, implementemos um exemplo comparativo detalhado:

Interpretação dos Resultados

Analisando os experimentos, podemos observar padrões importantes:

  • O encolhimento melhora significativamente a estabilidade dos classificadores
  • Valores intermediários de shrinkage geralmente produzem os melhores resultados
  • O parâmetro ‘auto’ oferece uma solução prática e eficiente
  • Em casos de alta dimensionalidade, o shrinkage torna-se essencial

Conexões com Tópicos Anteriores

Similarmente aos conceitos de regularização que discutimos em regressão linear, o encolhimento no LDA e QDA:

  • Balanceia o trade-off entre viés e variância
  • Melhora a generalização em dados limitados
  • Lida com problemas de multicolinearidade
  • Oferece robustez contra overfitting

Considerações Práticas

Quando Usar Encolhimento

  • Número de features maior que número de amostras
  • Matrizes de covariância singular ou mal-condicionada
  • Dados com alta correlação entre features
  • Aplicações onde robustez é mais importante que precisão máxima

Escolha do Parâmetro

Inegavelmente, a seleção do parâmetro de encolhimento deve considerar:

  • Usar validação cruzada para tuning
  • Começar com valores padrão ou ‘auto’
  • Considerar o trade-off entre performance e complexidade computacional
  • Avaliar a sensibilidade do modelo a diferentes valores

Conclusão

O encolhimento representa uma ferramenta essencial para aplicar LDA e QDA em cenários práticos, especialmente quando lidamos com as limitações de dados do mundo real. Embora adicione complexidade ao modelo, os benefícios em termos de robustez e generalização frequentemente justificam seu uso.

Portanto, ao implementar classificadores discriminantes em aplicações reais, o uso criterioso de técnicas de encolhimento pode significar a diferença entre um modelo que funciona bem na prática e um que falha devido a problemas numéricos ou overfitting.

Referência

Este post explora o item 1.2.4. Encolhimento da documentação do scikit-learn:

https://scikit-learn.org/0.21/modules/lda_qda.html

Análise Discriminante: Formulação Matemática da Redução de Dimensionalidade LDA

Após explorarmos as formulações dos classificadores LDA e QDA, aprofundemo-nos agora na fundamentação matemática da redução de dimensionalidade via LDA. Primordialmente, esta abordagem representa uma aplicação elegante dos conceitos discriminativos para transformação de dados em espaços de menor dimensão.

O Problema de Otimização

Conforme discutimos anteriormente, o LDA para redução de dimensionalidade busca encontrar projeções que maximizem a separação entre classes. Analogamente, podemos formular este problema como uma otimização que maximiza o critério de Fisher:

\(J(W) = \frac{W^T S_B W}{W^T S_W W}\)

Onde W é a matriz de transformação que projeta os dados em um espaço de dimensão reduzida.

Matrizes de Dispersão

Matriz de Dispersão Entre Classes (Between-Class Scatter)

Esta matriz captura a dispersão das médias das classes em relação à média global:

\(S_B = \sum_{k=1}^K N_k (\mu_k – \mu)(\mu_k – \mu)^T\)

Onde:

  • \(K\) é o número de classes
  • \(N_k\) é o número de amostras na classe k
  • \(μ_k\) é a média da classe k
  • \(μ\) é a média global dos dados

Matriz de Dispersão Dentro das Classes (Within-Class Scatter)

Esta matriz quantifica a dispersão dos dados dentro de cada classe:

\(S_W = \sum_{k=1}^K \sum_{x_i \in C_k} (x_i – \mu_k)(x_i – \mu_k)^T\)

Alternativamente, podemos expressar S_W em termos das matrizes de covariância de cada classe:

\(S_W = \sum_{k=1}^K N_k \Sigma_k\)

Solução do Problema de Autovalor Generalizado

Maximizar J(W) equivale a resolver o problema de autovalor generalizado:

\(S_B w = \lambda S_W w\)

Os autovetores correspondentes aos maiores autovalores formam as direções de projeção ótimas. Ademais, o número máximo de componentes discriminantes é limitado por:

\(L \leq \min(K-1, d)\)

Onde K é o número de classes e d é a dimensionalidade original.

Interpretação Geométrica

Projeção Ótima

Os autovetores w_i que resolvem o problema de autovalor definem um novo sistema de coordenadas onde:

\(y = W^T x\)

Neste espaço projetado, a razão entre a dispersão entre classes e dentro das classes é maximizada.

Variância Explicada

Os autovalores λ_i associados a cada autovetor indicam o poder discriminativo de cada componente:

\(\text{Variância explicada} = \frac{\lambda_i}{\sum_{j=1}^L \lambda_j}\)

Relação com Análise de Variância (ANOVA)

Similarmente à ANOVA, o LDA decompõe a variabilidade total em componentes:

\(S_T = S_W + S_B\)

Onde \(S_T\) é a matriz de dispersão total. Inegavelmente, esta decomposição revela a estrutura fundamental dos dados.

Regularização e Estabilidade Numérica

Quando \(S_W\) é singular ou mal-condicionada, utilizamos regularização:

\(S_W^{reg} = S_W + \gamma I\)

Esta abordagem melhora a estabilidade numérica sem comprometer significativamente o poder discriminativo.

Exemplo Prático em Python

Para ilustrar estas formulações matemáticas, implementemos um exemplo detalhado que demonstra os cálculos fundamentais:

Interpretação dos Resultados Matemáticos

Analisando a implementação e os resultados, podemos observar que:

  • As matrizes S_B e S_W capturam adequadamente a estrutura de dispersão dos dados
  • Os autovalores refletem o poder discriminativo de cada componente LDA
  • A decomposição da variabilidade total é matematicamente consistente
  • As projeções preservam a separabilidade entre classes mesmo com redução dimensional

Propriedades Matemáticas Importantes

Ortogonalidade dos Componentes

No espaço transformado, os componentes LDA são ortogonais em relação à métrica definida por S_W:

\(w_i^T S_W w_j = 0 \quad \text{para } i \neq j\)

Maximização Sequencial

Os componentes são encontrados sequencialmente, onde cada novo componente maximiza a separação sujeito à ortogonalidade com os anteriores.

Considerações Numéricas

Na prática, várias considerações numéricas são importantes:

  • O problema de autovalor generalizado requer cuidado com matrizes singulares
  • Técnicas de regularização melhoram a estabilidade numérica
  • Decomposições como Cholesky podem ser preferíveis para eficiência
  • A seleção do número de componentes deve considerar tanto aspectos matemáticos quanto práticos

Relação com Outras Técnicas

Similarmente a outras técnicas de redução de dimensionalidade, o LDA compartilha conceitos fundamentais:

  • Como o PCA, busca direções de máxima variância, mas com foco na variância entre classes
  • Como a ANOVA, decompõe a variabilidade total em componentes estruturados
  • Como métodos de projeção linear, transforma dados preservando propriedades desejadas

Portanto, a formulação matemática do LDA para redução de dimensionalidade não apenas fornece uma ferramenta prática, mas também revela insights profundos sobre a estrutura dos dados e as relações entre observações de diferentes classes.