File size: 5,199 Bytes
5f031f3
00dd2c9
1e1b415
 
 
5f031f3
1e1b415
5f031f3
1e1b415
 
 
 
 
5f031f3
 
00dd2c9
1e1b415
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
---
title: Diagnóstico de Diabetes - Random Forest - Otimizado
emoji: 🏥
colorFrom: red
colorTo: blue
sdk: gradio
sdk_version: 6.0.1
app_file: app.py
pinned: true
license: mit
short_description: Suporte ao diagnóstico de diabetes usando Machine Learning
thumbnail: >-
  https://cdn-uploads.huggingface.co/production/uploads/69239245f2835e7820b31ade/eBdPnxehVjii957k4G5zA.png
---

# 🏥 Diagnóstico de Diabetes - Random Forest - Otimizado

Sistema de suporte ao diagnóstico de diabetes utilizando **Machine Learning (Random Forest)** baseado no dataset Pima Indians Diabetes Database.

> **⚠️ IMPORTANTE**: Esta é uma aplicação educacional desenvolvida como projeto acadêmico da FIAP. 
> **NÃO substitui avaliação médica profissional**. Sempre consulte um médico para diagnóstico e tratamento.

## 🎯 Funcionalidades

- ✅ Predição de diabetes baseada em parâmetros clínicos
- 📊 Cálculo de probabilidades (Diabético/Não Diabético)
- 📋 Interpretação automática dos parâmetros inseridos
- 🤖 **Análise por IA Generativa (OpenAI GPT)** — explicações em linguagem natural e insights acionáveis para médicos
- 🎨 Interface intuitiva com controles deslizantes
- 💡 Exemplos pré-configurados para teste

## 🧠 Modelo (Otimizado via Algoritmo Genético)

- **Algoritmo**: Random Forest Classifier
- **Hiperparâmetros Otimizados**:
  - `n_estimators`: 43
  - `max_depth`: 19
  - `min_samples_leaf`: 1
  - `min_samples_split`: 5
  - `max_features`: 'log2'
- **Acurácia**: ~79%
  
## 📊 Dataset

**Pima Indians Diabetes Database** (National Institute of Diabetes and Digestive and Kidney Diseases - NIH)

**Características:**
- **População**: Mulheres com ascendência indígena Pima
- **Idade mínima**: 21 anos
- **Total de registros**: 768 pacientes
- **Features**: 8 parâmetros clínicos

### Parâmetros de Entrada:

1. **Pregnancies** (Gestações): Número de vezes que a paciente engravidou
2. **Glucose** (Glicose): Concentração de glicose plasmática (mg/dL) após 2 horas em teste OGTT
   - < 140: Normal
   - 140-199: Pré-diabetes
   - ≥ 200: Diabetes
3. **BloodPressure** (Pressão Arterial): Pressão arterial diastólica (mm Hg)
4. **SkinThickness** (Espessura da Pele): Espessura da dobra cutânea do tríceps (mm)
5. **Insulin** (Insulina): Nível de insulina sérica (mu U/ml)
6. **BMI** (IMC): Índice de Massa Corporal (peso kg / altura m²)
7. **DiabetesPedigreeFunction**: Função de pedigree de diabetes (histórico familiar)
8. **Age** (Idade): Idade em anos

## 🚀 Como Usar

1. **Ajuste os parâmetros** usando os controles deslizantes:
   - Gestações, Glicose, Pressão Arterial, etc.
2. **Clique em "Submit"** ou use um dos exemplos pré-configurados
3. **Visualize o resultado**:
   - Predição (Diabético/Não Diabético)
   - Probabilidades calculadas
   - Interpretação dos parâmetros
   - **Análise clínica gerada por IA** (requer `OPENAI_API_KEY`)

## 📝 Exemplos Inclusos

A aplicação inclui 5 casos de teste:
- ✅ Baixo risco de diabetes
- ⚠️ Risco moderado
- 🔴 Alto risco de diabetes
- 👶 Paciente jovem
- 📊 Diversos perfis clínicos

## 🛠️ Tecnologias

- **Python** 3.10+
- **Gradio** - Interface web interativa
- **Scikit-learn** - Modelo Random Forest
- **OpenAI GPT-4o-mini** - Explicações em linguagem natural e insights clínicos
- **Pandas** - Manipulação de dados
- **NumPy** - Computação numérica
- **Pickle** - Serialização do modelo

## 🔑 Configuração da API OpenAI (Hugging Face Space)

Para habilitar a análise por IA Generativa:

1. Acesse as **Settings** do seu Space no Hugging Face
2. Vá em **Variables and secrets**
3. Adicione um novo secret com o nome: `OPENAI_API_KEY`
4. Cole sua chave de API da OpenAI como valor

> Sem a chave configurada, as demais funcionalidades (predição e interpretação dos parâmetros) continuam funcionando normalmente.

## 📚 Projeto Acadêmico

**Instituição**: FIAP  
**Curso**: IA para DEVs - 8IADT  
**Fase**: 2  
**Projeto**: Tech Challenge - Otimização de Hiperparametros via Algoritmo Genético  
**Grupo**: 61

### 👥 Integrantes:
- Rodrigo de Araújo Rosa
- Elias Maximiano da Silva
- Fábia Gomes de Jesus
- Danilo Pereira

### 🎯 Objetivo do Projeto:
Construir uma solução inicial com foco em IA para processamento de exames médicos, 
aplicando fundamentos de Machine Learning para criar um sistema de suporte ao diagnóstico e otimizar o modelo com base em algoritmos genéticos, bem como integrar com uma LLM para Interpretação de Resultados.

## 📖 Referências

- [NIH - Pima Indians Diabetes Database](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2245318/)
- [Glucose Tolerance Test - NIH](https://www.ncbi.nlm.nih.gov/books/NBK532915/)
- [Diabetes and Hypertension - ADA](https://diabetesjournals.org/care/article/40/9/1273/36772/)

## 📄 Licença

MIT License - Uso livre para fins acadêmicos e educacionais.

## 📧 Contato

Para dúvidas ou feedback sobre o projeto:
- **Email**: rodrigoaraujo.r@gmail.com
- **LinkedIn**: [Rodrigo de Araujo Rosa](https://www.linkedin.com/in/rodrigoaraujorosa/)

---

**Desenvolvido para aprendizado em IA e Machine Learning**