CorAI es una aplicación web interactiva que utiliza Machine Learning (Random Forest) para evaluar el riesgo de enfermedades cardiovasculares. Todo se ejecuta 100% local, sin necesidad de internet ni envío de datos a servidores externos.
- Cuestionario interactivo vía chat (Modo Rápido con 6 preguntas o Modo Experto con 13 parámetros clínicos)
- Predicción en tiempo real usando un modelo Random Forest entrenado con el dataset Heart Disease
- Reporte clínico detallado con recomendaciones personalizadas
- Asistente IA opcional con Ollama (genera reportes conversacionales en español)
- Visualizaciones de análisis exploratorio de datos (EDA)
- Panel de métricas del modelo (accuracy, matriz de confusión, curva ROC, etc.)
- Interfaz moderna con diseño responsivo y modo oscuro
- Python 3.10+
- pip
# Clonar el repositorio
git clone https://github.com/tu-usuario/heartDesease.git
cd heartDesease
# Crear y activar entorno virtual (opcional pero recomendado)
python -m venv .venv
.venv\Scripts\activate # Windows
# Instalar dependencias
pip install -r requirements.txtpython train_model.pyEsto generará heart_model.pkl con el clasificador Random Forest entrenado.
python server.pyLuego abre http://localhost:5000 en tu navegador.
Para habilitar reportes generados por IA:
- Instala Ollama
- Descarga un modelo:
ollama pull llama3.2:1b - Reinicia
server.py— detectará Ollama automáticamente
heartDesease/
├── server.py # API Flask (predicción y chat)
├── train_model.py # Entrenamiento del modelo
├── app.py # Visualización EDA (edad vs colesterol)
├── analisis_sexo.py # Análisis por sexo
├── metricas_modelo.py # Métricas y visualizaciones del modelo
├── heart_model.pkl # Modelo entrenado
├── requirements.txt # Dependencias
├── dataset/
│ └── heart.csv # Dataset (1025 registros, 14 variables)
├── static/
│ ├── index.html # Frontend
│ ├── app.js # Lógica del chat interactivo
│ └── style.css # Estilos
└── .gitignore
El dataset contiene 1,025 registros clínicos con 14 variables:
| Variable | Descripción |
|---|---|
age |
Edad en años |
sex |
Sexo (0 = Mujer, 1 = Hombre) |
cp |
Tipo de dolor de pecho |
trestbps |
Presión arterial en reposo (mmHg) |
chol |
Colesterol sérico (mg/dl) |
fbs |
Azúcar en ayunas > 120 mg/dl |
restecg |
Resultados ECG en reposo |
thalach |
Frecuencia cardíaca máxima |
exang |
Angina inducida por ejercicio |
oldpeak |
Depresión ST inducida |
slope |
Pendiente del ST |
ca |
Vasos principales coloreados |
thal |
Resultado de Talio |
target |
0 = Sano, 1 = Enfermedad cardíaca |
| Métrica | Valor |
|---|---|
| Accuracy | ~99% |
| Precision | ~99% |
| Recall | ~99% |
| F1-Score | ~99% |
| AUC-ROC | ~1.00 |
Ejecuta metricas_modelo.py para ver las métricas actualizadas.
Todos los cálculos se realizan localmente. No se envía información a servidores externos. El modelo y los datos nunca abandonan tu computadora.
Esta herramienta es solo con fines educativos e informativos. No reemplaza la opinión de un profesional de la salud. Consulta siempre a un médico para diagnóstico y tratamiento.
MIT