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
Classe | Label |
---|---|
Camiseta/Top | 0 |
Calça | 1 |
Suéter | 2 |
Vestido | 3 |
Colete | 4 |
Sandália | 5 |
Camisa | 6 |
Tênis | 7 |
bolsa | 8 |
Botas | 9 |
Exemplos de imagens:
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
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.
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.