Modelo de previsão de diabetes usando Python Machine Learning

Feb 27 2023
Introdução Neste artigo, aprenderemos como usar o modelo Train Test Split para dividir um conjunto de dados em quatro partes, desenvolver um modelo de previsão e também analisar as previsões e o conjunto de dados por meio de um caso de uso. Caso de uso — Declaração do problema Nosso objetivo para este artigo é prever se os pacientes têm diabetes ou não.

Introdução

Neste artigo, aprenderemos como usar o modelo Train Test Split para dividir um conjunto de dados em quatro partes, desenvolver um modelo de previsão e também analisar as previsões e o conjunto de dados por meio de um caso de uso.

Caso de uso — Declaração do problema

Nosso objetivo para este artigo é prever se os pacientes têm diabetes ou não . Todos os nossos pacientes são mulheres jovens, cujos dados fornecidos (ou seja, número de gestações, níveis de glicose e IMC) serão usados ​​para prever o diabetes. Este é o conjunto de dados que usaremos.

Dados de treinamento e teste em aprendizado de máquina

Trabalhando com conjuntos de dados, quase todos os algoritmos de aprendizado de máquina funcionam em três fases diferentes: pré-processamento de dados, modelo de previsão e análise de dados. Durante o estágio 1 do processo, o conjunto de dados é dividido em 80% de dados de treinamento e 20% de dados de teste. Usando o modelo Train Test Split , primeiro completaremos o pré-processamento de dados antes do modelo de previsão e análise de dados.

Para iniciar o pré-processamento de dados, primeiro precisamos instalar algumas bibliotecas Python usando pip:

>>>pip instalar pandas

>>>pip instalar sklearn

Após instalar as bibliotecas necessárias, usaremos a biblioteca pandas para importar o dataset e a biblioteca sklearn para executar a divisão do dataset:

Depois de importar esses pacotes, leremos nosso conjunto de dados de um arquivo csv para um dataframe do pandas para poder alterar e manipular facilmente no estágio de pré-processamento.

Agora, começaremos a dividir o conjunto de dados em duas partes: x e y. Como queremos prever o “Resultado”, 0 sendo sem diabetes e 1 sendo diabetes , nossa variável x incluirá todos os dados, exceto o “Resultado”, enquanto nossa variável y armazenará apenas os valores de “Resultado”.

Posteriormente, finalmente usaremos o modelo Train Test Split para dividir a variável x em 80% x_train e 20% x_test . O mesmo será feito para a variável y: 80% y_train e 20% y_test .

Para verificar o que realmente aconteceu, podemos executar .head() ou .shape nos trens e testes para ver como os dados foram alterados desde o início deste artigo até agora.

Desenvolvimento de modelo de previsão

Concluída a divisão do conjunto de dados em quatro partes, iniciaremos agora a etapa 2 do processo, desenvolvendo um modelo de previsão. Estaremos usando o modelo Random Forest Classifier , que é ótimo para previsões de classificação com base em vários fatores, como neste caso, para nossas previsões.

Primeiro, importaremos nosso modelo Random Forest Classifier do sklearn. Depois de definir o nome do modelo, ele será treinado com x_train e y_train do conjunto de dados, para que possa descobrir padrões e tendências entre as diversas variáveis ​​independentes no x_train e a variável “Outcome” no y_train . Após a conclusão do processo de treinamento, utilizaremos nosso modelo treinado para prever o “Resultado” de nossos dados x_test inseridos sem fornecer os dados y_test. Aqui está o código para tudo isso:

Com as previsões armazenadas na variável y_pred, gostaríamos de ver a precisão de nossas previsões para os dados x-_test fornecidos, comparando-os com os resultados reais do y_test. Usando métricas da biblioteca sklearn, descobrimos que nosso modelo teve cerca de 81% de precisão com suas previsões.

Nota: O modelo Radom Forest Classifier, como a maioria dos modelos de previsão sofisticados, é projetado para grandes conjuntos de dados. Sua função e previsões são muito mais precisas com quantidades “maiores” de dados, pois pode implementar mais dados para treinar e aprender, levando a melhores previsões e maior precisão.

Análise de dados

Na etapa final do projeto, gostaríamos de realizar algumas análises de dados para aprender mais sobre os dados e nosso modelo de previsão. Primeiro, usaremos uma matriz de confusão do sklearn para aprender mais a fundo sobre nossas previsões e onde deu errado. Precisamos instalar com pip e importar as bibliotecas seaborn e matplotlib para que as análises de dados a seguir funcionem.

Como podemos ver aqui, a Matriz de Confusão nos diz o número de vezes que nosso modelo previu algo certo e errado. Além disso, a Matriz de Confusão mostra os falsos positivos e falsos negativos cometidos pelo modelo, inferindo que ele precisa de mais dados para corrigir esses erros.

Outra técnica de análise de dados é usar o Feature Importance Scores para determinar quais variáveis ​​independentes são mais significativas na previsão de diabetes ou não . Quanto maior a pontuação da característica importante, maior a influência que essa variável tem no “resultado” do diabetes.

Para mostrar esses dados graficamente:

Conclusão

Aqui neste artigo, aprendemos como dividir um conjunto de dados de arquivo csv em 4 seções diferentes usando o modelo Train Test Split, criamos um modelo de previsão treinando e testando-o e também utilizamos algumas técnicas de análise de dados para entender as previsões em questão .