Pesquisar este blog

segunda-feira, 25 de março de 2019

CANCER DE MAMA E ORANGE CANVAS


Neste post vamos aprender como montar um modelo para predição de cancer de mama de forma fácil e rápida e com uma ferramente totalmente visual.


Fique conosco.
Não estamos falando do Jupyter notebook mas sim do Orange Canvas que de forma rápida e visual conseguimos montar um modelo para predição de cancer de mama baseado em um dataset disponibilizado no Kagle, para quem não conhece não deixe de conferir no link a seguir: Kagle: Your Home for Data Science
O Kagle é uma plataforma para ciência de dados, incluindo concursos com prêmios pagos e muito mais.
Este post não tem a intenção de ensinar data science ou estatística ou matemática mas sim mostrar a você uma ferramenta para ajudar em seus estudos ou trabalhos no ramo relacionados.
ATENÇÃO: Os estudos apresentados aqui ou nenhum outro tutorial deve ser utilizado para diagnósticos médicos reais. Procure sempre seu médico.

Instalando e preparando o ambiente

Mais detalhes sobre a ferramenta você pode conseguir neste post : Orange Canvas: Ciência de dados e laranjas.
Aqui não vamos focar muito na instalação pois é realmente muito simples.
Download do dataset necessário para este estudo: Download Dataset
Link para o Git com tudo pronto para você brincar e tirar dúvidas: Github

Criando nosso canvas

O orange canvas é baseado em arrastar e soltar componentes então se achar mais rápido já pode arrastar os componentes que vamos mostrar e depois iremos fazer a ligação entre cada um deles e sua configuração.
Precisaremos no total de treze componentes, chamados no Orange Canvas de Widgets.

Por enquanto não se preocupe em como configurar cada um deles, vamos mostrar durante o post, apenas arraste e solte os widgets no canvas do Orange.
Não se esqueça que cada widget é separado por categoria, por exemplo, os widgets File e Data Table está dentro de Data,  Logistic Regression, Random Forest e SVM dentro de Model, Predictions, Test & Score e Confusion Matrix dentro de Evaluate e por último k-Means dentro de Unsupervised e Distribution e Scatter Plot dentro de Visualize.

Configurando a entrada dos dados

No widget File, vamos clicar duas vezes, não importa qual deles, visto que você poderá renomear para deixar mais intuitivo o seu trabalho.
Em File – File – aponte para o arquivo breast-cancer.csv e em Columns (Double click to edit) vamos realizar algumas configurações.
id – Role = skip (acredito que o id não interfira em nenhum tipo de diagnóstico então não vamos utilizá-lo)
diagnosis – categorical – target (devemos marcar este atributo como target para os testes de predição)
Feature 1 – a última coluna vamos deixar marcada como skip, pois ela é apenas uma coluna que veio errada no csv pois a última possui uma vírgula, que acredito, não deveria.
A configuração do seu widget File dever estar da seguinte maneira:

Vamos visualizar os dados ligando o File ao widget Data Table



Criando o arquivo de test:

Bem pessoal, aqui o processo foi um tanto que manual pois eu quis na verdade criar um arquivo novo e escolhi 20% do arquivo original para ser nosso arquivo de testes.
Como gerei o arquivo de testes ?
Abri o arquivo original via Microsoft Excel, calculei o que seria mais ou menos 20% do total  de linhas e exclui o restante. O importante aqui é mudar o valor da coluna diagnosis para um character qualquer, eu escolhi o interrogação pois serão os dados que iremos predizer com nossos modelos. Fique a vontade para extrair essa informação via python ou de qualquer outra forma que achar melhor.

Classificando os diagnósticos

Agora vamos deixar mais interessante e entender o poder do Orange Canvas.
Utilizando o widget k-Means e um Scatter Plot vamos ver se já somos capazes de classificar entre os dois diagnósticos: maligno e benigno:
Aqui faremos a ligação entre nosso widget File (que aponta para o arquivo original e completo, não o de teste) e o k-Means e Scatter Plot

Clique duas vezes em Scatter Plot e veja o resultado.


Note que B = benigno (azul) e M = maligno (vermelho)
Fomos capazes de separar de forma rápida e fácil duas classes de dados.

Testando modelos

Uma característica interessante no Orange é poder testar a acurácia dos modelos usando diferentes técnicas para o score. Aqui vamos utilizar dois deles: Test & Score e Confusion Matrix
Então agora deixando nosso projeto um pouco mais completo vamos fazer a ligação entre os widgets:

Para cada componente você pode configurar como cada algoritmo irá tratar os dados, neste caso eu deixei o padrão do Orange que me pareceu bastante assertivo.
Lembre-se que por trás das cortinas o Orange utiliza o sci-kit learn e algumas outras bibliotecas encontradas também na distribuição do Anaconda.
Clique duas vezes sobre o Test & Score para ver os resultados obtidos:

Percebemos que em nosso conjunto de testes o algoritmo que obteve o melhor resultado foi o SVM.
Agora vamos ver o resultado em nosso widget Confusion Matrix:

Predição

Agora chegou o momento onde vamos fazer a ligação do nosso arquivo de testes com um outro widget chamado Predictions e enviar os resultados para um Data Table
Veja como ligar os widgets abaixo:
Clique duas vezes sobre o widget Predictions
Note que em alguns casos e dependendo do algoritmo utilizado ele acertou com uma acurácia de até 100%. Para visualizar as probabilidades de acerto para cada um deixe marcado Predicted probabilities for:
Os resultados pode ser gravados em

Conclusão

O Orange Canvas se apresenta uma ferramenta muito eficiente para realizar um trabalho de Data Science e pode servir para diversas propostas e o que é melhor, é gratuito.
Podemos melhorar o modelo de diversas formas e com diferentes técnicas.
Espero que tenham gostado do post e aprendido um pouco mais sobre esta incrível ferramenta.
Até o próximo.

Nenhum comentário:

Postar um comentário

CANCER DE MAMA E ORANGE CANVAS

Neste post vamos aprender como montar um modelo para predição de cancer de mama de forma fácil e rápida e com uma ferramente totalmente v...