- Visión del Proyecto
- KPIs Técnicos
- Estructura del Repositorio
- Metodología — 8 Tarjetas
- Stack Tecnológico
- Instalación y Uso
- Entregables
- Autor y Licencia
Pipeline de ciencia de datos de grado industrial para la optimización de activos urbanos del Área Metropolitana del Valle de Aburrá. El sistema integra modelos de aprendizaje no supervisado y supervisado para transformar 304,799 registros transaccionales en inteligencia estratégica accionable, respondiendo directamente al reto analítico propuesto por el caso de negocio:
"Atraer nuevos públicos a nuestros parques, entendiendo los cambios en los comportamientos de asistencia y las tendencias de pérdida de usuarios en los últimos años."
| Métrica | Resultado | Estatus |
|---|---|---|
| Registros brutos | 304,799 | ✅ |
| Registros post-ETL | 221,004 | ✅ |
| Usuarios únicos analizados | 189,384 | ✅ |
Cardinalidad tarifa (cruda → limpia) |
415 → 5 | ✅ Normalizado |
Cardinalidad tipo_venta (cruda → limpia) |
346 → 2 | ✅ Normalizado |
| Features del modelo (pipeline final) | 27 | ✅ |
| ROC-AUC — LightGBM (pipeline final, CV 5-fold) | 0.8346 ± 0.0016 (IC 95% [0.8333, 0.8360]) | ✅ Validado |
| Umbral óptimo de descuento | 11.92% | ✅ Calculado |
| Segmentos de usuario | 4 (K-Means, 6 features) | ✅ |
| Data Leakage detectado y excluido | recencia excluida |
✅ |
| Cobertura temporal | Ene 2024 → Dic 2025 | ✅ |
urban-parks-intelligence/
│
├── 📒 src/
│ └── analisis_parques.ipynb ← Pipeline completo (8 tarjetas)
│
├── 📄 docs/
│ ├── negocio/
│ │ ├── Informe_Ejecutivo_Clientes.md ← Informe para comité directivo
│ │ ├── Propuesta_Ejecucion.md ← Roadmap operacional
│ │ └── Propuesta_Valor_RutaN.md ← Propuesta de valor institucional para RutaN
│ └── tecnico/
│ ├── AUDITORIA_TECNICA.md ← Bitácora técnica forense
│ ├── RESULTADOS_FEATURES_V2.md ← Resultados de la auditoría de features v2
│ ├── RESULTADOS_MODELO_FINAL.md ← Resultados del modelo final (LightGBM)
│ └── auditoria_features_v2.ipynb ← Evidencia de proceso: auditoría de features v2 + modelo final
│
├── 🖼️ assets/
│ ├── logo_alcaldia.png
│ ├── logo_rutan.png
│ └── grafico_kpis.png
│
├── 📜 LICENSE
├── 🔒 .gitignore
└── 📋 README.md
| # | Tarjeta | Técnica | Output clave |
|---|---|---|---|
| 1 | ETL — Ingesta Robusta | pd.concat, parseo mixto, normalización unicodedata |
df con 221,004 registros limpios |
| 2 | Ingeniería de Características | Variables RFM, demografía, franja horaria, comportamiento de fin de semana | df_user con 12 features por usuario |
| 3 | Segmentación K-Means | StandardScaler + método del codo (6 features) | 4 segmentos etiquetados semánticamente |
| 4 | Modelado Supervisado + Leakage | Correlación, exclusión de recencia, one-hot real |
Features saneadas, 2 modelos entrenados |
| 5 | Evaluación de Modelos | ROC-AUC, curva ROC, importancia de features | RF wins: AUC=0.7537 |
| 6 | Smart Pricing | Elasticidad precio-frecuencia | Umbral óptimo de descuento: 11.92% |
| 7 | Estacionalidad y Exportación | Serie temporal 2024 vs 2025 | df_resultados_analisis_parques.csv + hallazgos de capacidad |
| 8 | Modelo Final — LightGBM + Features Geográficas/Temporales | LightGBM, 27 features (incl. codsede_dominante, hora_promedio, grupo_agregado, dias_span, intervalo_promedio_entre_visitas), CV 5-fold, calibración isotónica |
AUC=0.8346 ± 0.0016, IC 95% [0.8333, 0.8360]; Brier 0.1612 → 0.1597 |
| Capa | Herramientas |
|---|---|
| Lenguaje | Python 3.12 |
| Procesamiento | Pandas 2.x, NumPy |
| Modelado | Scikit-learn (KMeans, RandomForest, LogisticRegression) · LightGBM (producción) · XGBoost, CatBoost (evaluados en comparación) |
| Visualización | Matplotlib, Seaborn |
| Entorno | Jupyter Notebook / Google Colab |
| Control de versiones | Git + GitHub (badolgm) |
# 1. Clonar el repositorio
git clone https://github.com/badolgm/urban-parks-intelligence.git
# 2. Crear y activar el ambiente virtual
py -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
# source venv/bin/activate # Mac / Linux
# 3. Instalar dependencias
pip install pandas numpy matplotlib seaborn scikit-learn openpyxl jupyter lightgbm xgboost catboost
# 4. Colocar los archivos de datos en src/ junto al notebook
# usos_parques_2024_2025.csv
# usos_parques_2024_2025_2.csv
# 5. Abrir el notebook
jupyter notebook src/analisis_parques.ipynb- Abrir
src/analisis_parques.ipynben Colab. - El notebook detecta automáticamente el entorno y descarga los datos desde Drive.
- Ejecutar todas las celdas en orden (
Runtime → Run all).
| Artefacto | Descripción | Enlace |
|---|---|---|
| Notebook principal | Pipeline completo — 8 tarjetas | 📒 Ver |
| Informe ejecutivo | Hallazgos para comité directivo (≤3 páginas) | 📄 Ver |
| Propuesta de ejecución | Roadmap operacional por fases | 📋 Ver |
| Propuesta de valor RutaN | Propuesta de valor institucional para RutaN | 📋 Ver |
| Bitácora técnica | Bitácora técnica forense: bugs encontrados y corregidos, verificado por ejecución directa | 📄 Ver |
| Resultados features v2 | Detalle de la auditoría de features v2 | 📄 Ver |
| Resultados modelo final | Detalle del modelo final (LightGBM) | 📄 Ver |
| Notebook de auditoría v2 | Evidencia de proceso: auditoría de features v2 + modelo final | 📒 Ver |
| Licencia | MIT License | 📜 Ver |
Bernardo Adolfo Gómez Montoya
Data Scientist · Software Architect
Programa Horizontes Senior — Ruta N + Platzi · 2026
Distribuido bajo licencia MIT. Ver LICENSE para más información.
