Durante minha Pós-Graduação em Inteligência Artificial, fui desafiado a desenvolver uma solução para prever casos de dengue utilizando o algoritmo KNeighborsClassifier. O projeto parecia complicado no início, mas com muita pesquisa e dedicação, consegui implementar uma solução eficaz!
- Carreguei e transformei dados categóricos de uma base de casos de dengue.
- Apliquei técnicas de Machine Learning com Python, Pandas e scikit-learn.
- Treinei um modelo de classificação utilizando KNeighborsClassifier.
- Avaliei o desempenho com matriz de confusão e acurácia.
A previsão de doenças como a dengue é crucial para a saúde pública, e aplicar Machine Learning nessa área pode trazer insights poderosos e ajudar na tomada de decisões.
🔗 Confira o artigo completo no Medium
O texto abaixo trata-se do contexto apresentado para a prática do Projeto Integrado. 💬
-
Para realizarmos um projeto de mineração de dados, o primeiro é selecionar a base de dados e explorar dos dados desta base, no intuito de obtermos um entendimento inicial sobre o problema. Diante disto, utilize a biblioteca Pandas do Python para criar um Data Frame a partir da base de dados da dengue disponibilizada e exiba os 5 primeiros elementos deste conjunto usando o comando head().
-
O segundo passo de um projeto de mineração de dados é o da transformação dos dados para posterior utilização no modelo de aprendizagem. Para o problema de diagnóstico da dengue será utilizado o modelo KNeighborsClassifier. Para usar este modelo, transforme os registros que possuem os valores ‘sim’ e ‘nao’ da base de dados da dengue em binários 1 e 0, respectivamente. Exiba os registros atualizados utilizando o comando head() da biblioteca Pandas.
-
Logo após a transformação, tem-se, finalmente, o passo de mineração de dados. Para esta etapa, divida a base de dados da dengue em treinamento e teste. Logo após, selecione o algoritmo KNeighborsClassifier(), utilize o comando fit para treinar o modelo e o comando predict para aplicar o método de predição. Apresente a matriz de confusão e a acurácia do modelo.
Os valores nas colunas dor_muscular
, falta_apetite
, manchas_vermelhas
e dengue
são categóricos, com valores 'sim' e 'nao'. Para utilizar esses dados em um modelo de machine learning, foi necessário transformar esses valores em binários:
'sim'
foi substituído por1
.'nao'
foi substituído por0
.
Após a transformação, os dados foram divididos em conjuntos de treinamento e teste. O conjunto de treinamento é utilizado para treinar o modelo, enquanto o conjunto de teste é usado para avaliar seu desempenho.
O modelo KNeighborsClassifier
foi treinado usando os dados de treinamento. Este algoritmo classifica novos exemplos com base nas classes mais frequentes entre os vizinhos mais próximos.
O modelo foi avaliado usando a matriz de confusão e a acurácia.
A matriz de confusão gerada foi:
Previsto: Não Dengue | Previsto: Dengue | |
---|---|---|
Real: Não Dengue | 2 | 1 |
Real: Dengue | 0 | 1 |
- True Negatives (2): Pacientes que realmente não tinham dengue e foram corretamente classificados como "não dengue".
- False Positives (1): Paciente que não tinha dengue, mas foi incorretamente classificado como tendo dengue.
- False Negatives (0): Pacientes que tinham dengue, mas foram incorretamente classificados como "não dengue".
- True Positives (1): Pacientes que realmente tinham dengue e foram corretamente classificados como "dengue".
A acurácia do modelo foi de 75%. Ela é calculada como a proporção de previsões corretas (True Positives + True Negatives) sobre o total de previsões:
Acurácia = ( 2 + 1 ) / 4 = 0.75
Isso significa que o modelo acertou 75% das previsões no conjunto de teste.
1. Carregar a base de dados seleciona e explorar os dados
2. Transformar os valores da base de dados
- Python
- Pandas
- scikit-learn
Este projeto demonstra como aplicar o modelo KNeighborsClassifier para diagnosticar dengue com base em sintomas registrados em uma base de dados. A acurácia obtida foi de 75%, o que indica um desempenho razoável para este conjunto de dados simples.