Hello

sobre o dataset fashion mnist

O dataset fashion mnist e um dataset de imagens em escala 28x28 em tons cinza.

O dataset possui 785 colunas 28x28=784, portanto das 785 colunas , 784 são as representações de pixels da imagem a coluna que sobra é o label que representa aquela imagem

Categorias de imagens

ClasseLabel
Camiseta/Top0
Calça1
Suéter2
Vestido3
Colete4
Sandália5
Camisa6
Tênis7
bolsa8
Botas9

Exemplos de imagens:

Untitled

Images fashion_mnist_dataset

code

from sklearn.datasets import fetch_openml
df = fetch_openml('Fashion-MNIST', version=1, cache=True)
X = df.data
y = df.target.astype(int)

Pré-processamento dos Dados

No pré-processamento dos dados foi utilizado duas técnicas de pré-processamento

Normalização dos dados

A normalização dos dados para padronizar os dados deixando a media da coluna igual a zero e o desvio padrão igual 1, para isso foi utilizado o standard scaller

Exemplo antes e após normalizar os dados utilizando standard scaller

Untitled

Redução de dimensionalidade(PCA)

Foi utilizado o PCA para reduzir a dimensionalidade das colunas dado que o treinamento dos modelos estava muito demorado.

Antes do PCA o número de colunas do treinamento eram 784(numero de píxeis). Após aplicar a técnica do PCA para uma variância de 85% dos dados esse numero caiu ~80 colunas.

Untitled

code

from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
import pandas as pd

scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
X_scaled = pd.DataFrame(X_scaled, columns=X.columns)
pca = PCA(n_components=0.85, random_state=42)
X_pca = pca.fit_transform(X_scaled)
X_pca_df = pd.DataFrame(X_pca)

Treinamento dos Modelos

Eu escolhi dois modelos para realizar os testes comparativos:

  • SVM
  • KNN

Divisão de treino e teste

Para a divisão de treino e teste dos modelos foi verificado o balanceamento dos dados, conjuntos de treino desbalanceados podem levar a modelos com viés. E conjuntos de teste desbalanceados podem levar a métricas de classificação com viés.

Como podem ver abaixo, tanto o conjunto de teste quanto o conjunto de treino estão relativamente balanceadas, com algumas pequenas diferenças entre eles, porem nada que levasse a um viés.