Aula 1 — Classificador de células sanguíneas

Guilherme Ribeiro
Curso Fastai CIS UnB
2 min readOct 27, 2019

O dataset do Kaggle que eu decidi utilizar é o de células sanguíneas, que estão divididas em 4 tipos: eosinófilos, linfócitos, monócitos e neutrófilos. O dataset possui 9962 imagens de treinamento e 2492 imagens de validação.

Para fazer a classificação, utilizei o Google Colaboratory e tomei como base o notebook usado na Aula 1, sobre pets, e adaptei ao meu dataset mudando a criação do ImageDataBunch. Com a troca do método ‘from_name_re’ para ‘from_folder’ de ‘ImageDataBunch’, e adaptando os parâmetros, que são facilmente encontrados no Google, criei meu novo ImageDataBunch, que pode ser visualizado com o método ‘show_batch’:

Treinei meu modelo a partir de ‘Transfer Learning’ usando ‘resnet34’, e realizei 4 épocas de treinamento com o método ‘fit_one_cycle()’. Após o término do treinamento, usei ‘unfreeze()’ para treinar novamente. Então, carreguei o resultado anterior ao ‘unfreeze()’ e procurei melhorar a performance observando a curva de ‘learning rate’ do meu modelo.

Com os parâmetros ajustados, realizei um novo ‘unfreeze()’ e realizei mais 5 épocas de treinamento, obtendo um valor final de ‘error rate’ de aproximadamente 10.8%, resultando em uma acurácia de aproximadamente 89.2%.

Olhando alguns dos resultados de outras pessoas no Kaggle, observei que as acurácias variam desde 85% até 92% aproximadamente.

Ao observar a matriz de confusão:

pode-se observar que o classificador teve muita dificuldade em distinguir monócitos de neutrófilos , que pode ser confirmado pelos ‘top_losses’:

no qual todos são erros que classificam monócitos como neutrófilos.

O notebook que utilizei pode ser visualizado no GitHub a partir deste link.

--

--

Guilherme Ribeiro
Curso Fastai CIS UnB

Diretor de treinamentos no IEEE Computational Intelligence Society — Chapter UnB.