Dashboard de BI con ML
Machine LearningPythonFlaskBusiness IntelligenceCRISP-DMScikit-learn

ML Business Intelligence - CRISP-DM

Deployment Date

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:

  1. Carga y validación de datos crudos
  2. 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)
  3. Preparación — imputación, encoding, scaling, ingeniería de features dentro de sklearn.Pipeline
  4. Entrenamiento de múltiples algoritmos con benchmarking comparativo
  5. Evaluación con phase tests (umbrales mínimos de calidad)
  6. 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

VISUAL REPORTS