Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Backend + IA: Criando uma API para inferir diag...

Backend + IA: Criando uma API para inferir diagnóstico de diabetes

O objetivo deste projeto é utilizar backend + inteligência artificial para fins didáticos com Python. Todos os materiais utilizados neste projeto estão disponíveis abertamente na internet.

Ana Paula Mendes

October 17, 2023
Tweet

More Decks by Ana Paula Mendes

Other Decks in Programming

Transcript

  1. Ana Paula Mendes Engenheira de Software Sênior no Jusbrasil Mestranda

    em Computação Inteligente na UFPI Diabética Tipo 1 desde 2020
  2. Sobre essa palestra O objetivo deste projeto é utilizar backend

    + inteligência artificial para fins didáticos com Python. Todos os materiais utilizados neste projeto estão disponíveis abertamente na internet.
  3. A diabetes é um conjunto de distúrbios metabólicos caracterizados pela

    hiperglicemia. O Brasil ocupa o 5º lugar no mundo em incidências de diabetes, ficando atrás apenas da China, Índia, Estados Unidos e Paquistão. Projeções da Federação Internacional de Diabetes indicam que até 2030, o número de pessoas com diabetes pode chegar a 21,5 milhões. Sobre a Diabetes
  4. Sobre a Base de Dados A base de dados utilizada

    neste trabalho é originalmente do Instituto Nacional de Diabetes e Doenças Digestivas e Renais. Várias restrições foram colocadas na seleção dessas instâncias de um banco de dados maior. Em particular, todos os pacientes aqui são mulheres com pelo menos 21 anos de idade, descendentes dos indígenas Pima.
  5. Pregnancies: número de gravidezes Glucose: Concentração de glicose plasmática após

    2 horas em um teste oral de tolerância à glicose BloodPressure: Pressão arterial diastólica (mm Hg) SkinThickness: Espessura da prega cutânea do tríceps (mm) Insulin: Insulina sérica de 2 horas (mu U/ml) BMI: Índice de massa corporal (peso em kg/altura em m²) DiabetesPedigreeFunction: Função de pedigree de diabetes Age: Idade (anos) Outcome: Diagnóstico, com 0 sendo negativo para diabetes e 1 positivo para diabetes. Essa base contém dados clínicos de cada paciente. A base contém 768 instâncias, 8 classes-atributos, para cada atributo todos são valores numéricos.
  6. Algoritmos de Aprendizado de Máquina Para o KNN utilizamos a

    classe KNeighborsClassifier da biblioteca scikit-learn, um classificador que implementa o voto dos k vizinhos mais próximos. Para Redes Neurais utilizamos a classe MLPClassifier da biblioteca scikit-learn, um classificador perceptron multicamada. Árvore de Decisão Para árvore de decisão utilizamos a classe DecisionTreeClassifier da biblioteca scikit-learn, uma árvore de decisão para classificação. KNN Redes Neurais
  7. Árvore de Decisão "Árvores de decisão são um método de

    aprendizagem supervisionado não paramétrico usado para classificação e regressão. O objetivo é criar um modelo que preveja o valor de uma variável alvo, aprendendo regras de decisão simples inferidas a partir dos recursos dos dados. Uma árvore pode ser vista como uma aproximação constante por partes." Fonte: https://scikit-learn.org/
  8. KNN (K-Nearest Neighbors) "O princípio por trás dos métodos de

    vizinhos mais próximos é encontrar um número pré-definido de amostras de treinamento mais próximas ao novo ponto em distância, e prever o rótulo a partir delas. O número de amostras pode ser uma constante definida pelo usuário (aprendizado com k vizinhos mais próximos) ou variar com base na densidade local dos pontos (aprendizado com vizinhos baseados em raio). A distância pode, em geral, ser qualquer medida métrica: a distância euclidiana padrão é a escolha mais comum. Métodos baseados em vizinhos são conhecidos como métodos de aprendizado de máquina não generalizantes, já que eles simplesmente "lembram" todos os seus dados de treinamento." Fonte: https://scikit-learn.org/
  9. Redes Neurais Artificiais Cada conexão entre os neurônios tem um

    peso numérico que ajusta durante o processo de treinamento, permitindo que a rede aprenda padrões complexos nos dados. As redes neurais são capazes de lidar com problemas complexos e não-lineares, como reconhecimento de padrões, classificação e previsão, tornando-as amplamente utilizadas em áreas como visão computacional, processamento de linguagem natural, e reconhecimento de voz. Sua capacidade de aprender e adaptar-se a partir dos dados as torna uma ferramenta fundamental em muitas aplicações de inteligência artificial. Fonte: https://scikit-learn.org/
  10. Construção da API Foram construídos ao total 5 rotas. Uma

    rota para checar o status da API, uma para visualizar a acurácia dos modelos disponíveis na API, e mais três sendo um para cada modelo (árvore de decisão, KNN e redes neurais). Entrada de dados para os modelos: { "pregnancies": 0, "glucose": 0, "blood_pressure": 0, "skin_thickness": 0, "insulin": 0, "bmi": 0, "diabetes_pedigree_function": 0, "age": 0 }