Skip to content

About

Modelos predictivos de riesgo en el embarazo y violencia familiar con microdatos ENDES (INEI), desarrollados con PySpark, Hadoop, Docker y FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ENDES Big Data & Machine Learning

Modelos predictivos construidos sobre los microdatos de la Encuesta Demográfica y de Salud Familiar (ENDES – INEI) para identificar riesgo en el embarazo y violencia familiar. El proyecto cubre el flujo completo: ETL distribuido con PySpark, entrenamiento y evaluación de modelos y una API REST para hacer predicciones.

PySpark Hadoop Docker FastAPI scikit-learn Jupyter

Objetivos

Modelo Variable objetivo Fuentes ENDES
Riesgo en el embarazo Controles prenatales insuficientes (< 4) o parto fuera de un establecimiento de salud REC41, REC94, RE516171
Violencia familiar Presencia de violencia doméstica reportada REC84DV, RE516171

Flujo del proyecto

data/raw (CSV ENDES)
   │
   ▼
src/etl_procesamiento.py   →  limpieza, normalización de IDs y cruce de módulos (PySpark)
   │
   ▼
src/train_modelos.py       →  balanceo de clases, entrenamiento y evaluación
   │                           (Regresión Logística · Random Forest · Gradient Boosting)
   ▼
outputs/                   →  matrices de confusión y curvas ROC
   │
   ▼
src/api.py                 →  API REST (FastAPI) que sirve los modelos entrenados

Estructura

endes-bigdata-ml/
├── notebooks/            # Exploración de datos (EDA)
├── src/
│   ├── etl_procesamiento.py
│   ├── train_modelos.py
│   └── api.py
├── outputs/
│   └── figures/          # Matrices de confusión y curvas ROC por modelo
├── Dockerfile            # Imagen jupyter/pyspark-notebook + dependencias
├── docker-compose.yml    # Hadoop (namenode + datanode) + entorno Spark
├── hadoop.env.example    # Configuración base de Hadoop
└── requirements.txt

Cómo ejecutarlo

Los datos crudos de ENDES no se incluyen en el repositorio. Descárgalos del portal de microdatos del INEI y colócalos en data/raw/.

# 1. Crear el archivo de configuración de Hadoop
cp hadoop.env.example hadoop.env

# 2. Levantar el entorno (Hadoop + Spark + Jupyter)
docker compose up -d --build

# 3. Ejecutar el ETL y el entrenamiento dentro del contenedor
docker exec -it endes_ml_container spark-submit src/etl_procesamiento.py
docker exec -it endes_ml_container spark-submit src/train_modelos.py

# 4. Iniciar la API
docker exec -it endes_ml_container spark-submit src/api.py

Resultados

Ejemplos de evaluación (Random Forest):

Riesgo en el embarazo Violencia familiar
ROC Embarazo ROC Violencia

Todas las matrices de confusión y curvas ROC están en outputs/figures.

Autor

Rafael Roncal Saravia: LinkedIn · GitHub

About

Modelos predictivos de riesgo en el embarazo y violencia familiar con microdatos ENDES (INEI), desarrollados con PySpark, Hadoop, Docker y FastAPI.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages