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.
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
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.
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.
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
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/
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/
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/
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 }