MNIST: PCA e LDA em 2D

Visualização das 10 classes de dígitos manuscritos

Grupo 1 - AO802

Objetivo

  • Carregar a base MNIST a partir de arquivos no formato ubyte/IDX.
  • Aplicar PCA e projetar os dados em 2 dimensões.
  • Aplicar LDA e projetar os dados em 2 dimensões.
  • Comparar visualmente a separação entre as 10 classes.

Base de dados

  • MNIST: imagens de dígitos manuscritos de 0 a 9.
  • Cada imagem possui 28 × 28 pixels.
  • Cada observação é representada por 784 variáveis.
  • Reduzir para 2D facilita a visualização e a comparação entre métodos.

Bibliotecas

Localização dos arquivos

[1] "D:/Vitor/Documents/CEAO/802/HAB/train-images.idx3-ubyte"
[1] "D:/Vitor/Documents/CEAO/802/HAB/train-labels.idx1-ubyte"

Leitura dos arquivos IDX/ubyte

Carregamento dos dados

Dimensão da matriz X: 60000 linhas e 784 colunas
Quantidade de rótulos: 60000 
y
   0    1    2    3    4    5    6    7    8    9 
5923 6742 5958 6131 5842 5421 5918 6265 5851 5949 

Pré-processamento

  • Os pixels foram normalizados para o intervalo [0, 1].
  • Foi utilizada uma amostra de 5000 imagens para reduzir o custo computacional.
  • As classes foram mantidas como fator para uso no LDA.
Dimensão da amostra: 5000 x 665 
y_sample
  0   1   2   3   4   5   6   7   8   9 
505 606 497 487 491 448 465 522 496 483 

PCA: conceito

  • PCA é um método não supervisionado.
  • Não utiliza os rótulos das classes.
  • Procura direções de maior variância nos dados.
  • A projeção em 2D permite visualizar a estrutura global do conjunto.

PCA em 2D

Variância explicada no PCA

   Componente Variancia_Explicada
1           1              0.0616
2           2              0.0448
3           3              0.0404
4           4              0.0306
5           5              0.0270
6           6              0.0241
7           7              0.0206
8           8              0.0191
9           9              0.0168
10         10              0.0154

LDA: conceito

  • LDA é um método supervisionado.
  • Utiliza os rótulos das classes.
  • Busca maximizar a separação entre grupos e minimizar a dispersão dentro de cada grupo.
  • Como o MNIST tem 784 variáveis, aplicamos antes um PCA com 50 componentes para estabilizar o LDA.

PCA prévio para o LDA

[1] 5000   50

LDA em 2D

Comparação: PCA x LDA

  • PCA:
    • não usa rótulos;
    • preserva a variância global;
    • tende a apresentar maior sobreposição entre classes.
  • LDA:
    • usa rótulos;
    • enfatiza a separação entre classes;
    • tende a produzir grupos mais discriminados.

Interpretação dos resultados

  • No gráfico do PCA, é comum observar regiões com mistura entre diferentes dígitos.
  • No gráfico do LDA, a separação entre as classes costuma ser mais nítida.
  • Isso acontece porque o LDA incorpora a informação supervisionada durante a projeção.

Conclusão

  • O MNIST possui alta dimensionalidade (784 atributos).
  • O PCA foi útil para reduzir a dimensão e visualizar a estrutura global dos dados.
  • O LDA apresentou melhor capacidade de separação entre as 10 classes.
  • Para este problema, o LDA é mais adequado quando o objetivo é destacar diferenças entre os dígitos.

Observação final

  • Com 10 classes, o LDA pode gerar no máximo 9 componentes discriminantes.
  • Neste trabalho, utilizamos apenas 2 componentes para visualização.