
ML Business Intelligence - CRISP-DM
Resumen Ejecutivo
Plataforma de Machine Learning y Business Intelligence que resuelve tres problemas reales mediante pipelines automatizados bajo la metodología CRISP-DM: predicción de riesgo de diabetes, detección de intrusiones en tráfico de red y forecasting de ventas minoristas. Incluye un dashboard enterprise interactivo con 24 gráficos, simulador clínico con transparencia de modelo y API REST.
Situación
En el ámbito de ciencia de datos aplicada, la brecha entre entrenar un modelo y entregarlo como producto funcional sigue siendo uno de los mayores retos. Los notebooks aislados no comunican valor de negocio, y los dashboards sin sustento analítico carecen de credibilidad. Necesitaba un proyecto que demostrara el ciclo completo — desde la comprensión del problema hasta el despliegue interactivo — aplicando una metodología estándar de la industria.
Objetivo
Diseñar e implementar un ecosistema de ML que cubriera las 6 fases de CRISP-DM de forma rigurosa en tres casos de estudio con naturalezas distintas (clasificación, regresión y clustering), entregando no solo modelos entrenados sino una plataforma de BI completa donde un usuario no técnico pudiera explorar datos, comparar modelos y realizar inferencias en tiempo real.
Desarrollo y Arquitectura
Tres Casos de Estudio
| Caso | Tipo | Dataset | Objetivo |
|---|---|---|---|
| Diabetes | Clasificación | Pima Indians (768 registros) | Predecir riesgo clínico priorizando Recall |
| Rossmann | Regresión | Rossmann Store Sales (~180K registros) | Predecir ventas diarias con features temporales |
| KDD99 | Clustering / IDS | KDD Cup 1999 (~120K registros) | Detectar tráfico anómalo en redes |
Pipeline de ML Automatizado
Cada caso ejecuta un pipeline idéntico en estructura pero adaptado a su dominio:
- Carga y validación de datos crudos
- EDA automatizado — módulo centralizado con 7 funciones de perfilado (overview, feature profile, outliers IQR/Z-Score, normalidad Shapiro-Wilk, correlaciones multi-método, quality tests)
- Preparación — imputación, encoding, scaling, ingeniería de features dentro de
sklearn.Pipeline - Entrenamiento de múltiples algoritmos con benchmarking comparativo
- Evaluación con phase tests (umbrales mínimos de calidad)
- Persistencia — modelos
.pkl, métricas JSON, reportes Markdown
Modelos Entrenados y Resultados
** Diabetes — Clasificación (4 modelos)**
| Modelo | Recall | ROC-AUC | F1 |
|---|---|---|---|
| Logistic Regression | — | — | — |
| Random Forest (200 est.) | — | — | — |
| SVM-RBF | 0.722 | 0.814 | 0.650 |
| KNN (k=11) | — | — | — |
SVM ganó por maximizar Recall — esencial en diagnóstico clínico para minimizar falsos negativos.
Rossmann — Regresión (4 modelos)
| Modelo | RMSE | MAE | R² |
|---|---|---|---|
| Linear Regression | 2,583 | 1,792 | 0.301 |
| Extra Trees | 1,275 | 857 | 0.830 |
| Random Forest | 1,282 | 863 | 0.828 |
| Hist Gradient Boosting | 1,432 | 973 | 0.785 |
Extra Trees capturó la variabilidad no lineal de las tiendas. Se corrigió un data leakage al excluir
Customers(no disponible en producción) e inyectar features cíclicas seno/coseno.
KDD99 — Clustering / IDS (3 modelos)
| Modelo | Silhouette | Davies-Bouldin | Anomalías |
|---|---|---|---|
| KMeans | 0.697 | 0.113 | — |
| Gaussian Mixture | 0.907 | — | — |
| Isolation Forest | — | — | 7,464 |
Enfoque combinado: KMeans para segmentación + Isolation Forest para detección de anomalías puntuales.
Dashboard de Business Intelligence
La capa de presentación es un portal enterprise construido con Flask + Highcharts JS, diseñado con estética dark premium (glassmorphism, tipografía Inter + Outfit).
Funcionalidades Clave
- 24 gráficos interactivos — column, heatmap, boxplot, scatter, bubble, areaspline, PCP, donut, line
- 4 tabs por caso — Cuadro de Mandos, Perfilado Estadístico, Modelado CRISP-DM, Simulador Clínico
- KPIs dinámicos con recálculo AJAX en tiempo real al aplicar filtros
- Filtros globales por caso (rangos numéricos, fechas, dropdowns) con validación y clamping
- Theme toggle dark/light persistido en localStorage
- API REST con 5 endpoints para integración programática
Simulador Clínico (Diabetes)
Un módulo exclusivo que permite realizar inferencias interactivas con selección de modelo:
- Gauge radial animado — muestra el porcentaje de riesgo con gradiente de color (verde → ámbar → rojo)
- Waterfall Plot — gráfico de cascada que descompone la predicción: muestra la contribución marginal de cada variable (Glucosa, Edad, IMC, etc.) desde la mediana basal hasta el riesgo final
- Viaje diagnóstico — 3 factor cards con rangos clínicos (Glucosa, BMI, Edad) para contextualizar la predicción
- Transparencia del modelo — explica por qué se eligió SVM y sus métricas de seguridad
Stack Tecnológico
| Capa | Tecnologías |
|---|---|
| Modelado ML | Scikit-learn, Pandas, NumPy, SciPy, Joblib |
| Backend | Flask (Python), Jinja2 |
| Charting | Highcharts JS (9 tipos de gráfico) |
| Notebooks | Plotly interactivo, nbformat (generación programática) |
| CSS | Arquitectura modular de 3 capas (base + layout + components), Google Fonts |
| Testing | unittest (suite de 160 líneas — rutas, filtros, API, validaciones) |
Resultados
- 11 modelos entrenados con benchmarking comparativo en 3 dominios distintos (clasificación, regresión, clustering)
- Corrección de data leakage real en Rossmann — R² ajustado de 0.958 ficticio a 0.830 honesto
- 7,464 anomalías detectadas automáticamente en tráfico de red con Isolation Forest
- 24 visualizaciones interactivas enterprise-grade con filtros AJAX
- Simulador clínico con transparencia de modelo (waterfall contributions) y viaje diagnóstico
- EDA automatizado reutilizable — 7 funciones de perfilado aplicadas a los 3 casos
- 6 fases CRISP-DM documentadas en notebooks, reportes markdown y timeline visual en dashboard
- API REST funcional con 5 endpoints para consumo programático
- Suite de tests automatizados validando rutas, filtros, predicciones y seguridad de inputs
Classified Evidence