Skip to content

v1.2.0 Avance-3: Monitoreo y Detección de Data Drift

Latest

Choose a tag to compare

@whbello whbello released this 21 Feb 03:03
· 6 commits to main since this release
d7858c7

Nuevos Archivos

model_monitoring.py
Sistema completo de monitoreo de data drift que implementa:

Métricas de Drift:

  • Kolmogorov-Smirnov (KS) test para variables numéricas
  • Population Stability Index (PSI) para estabilidad de población
  • Jensen-Shannon Divergence para similitud de distribuciones
  • Chi-cuadrado para variables categóricas

Características:

  • Clase DriftCalculator con métodos estadísticos
  • Clase DataDriftMonitor para análisis completo
  • Sistema de alertas por umbrales (Bajo/Moderado/Alto)
  • Generación de reportes en JSON y CSV
  • Visualización de drift por feature
  • Comparación baseline vs current data

Umbrales configurados:

  • PSI < 0.2 (aceptable)
  • KS < 0.2 (aceptable)
  • JS < 0.15 (aceptable)
  • Chi² p-value > 0.05 (aceptable)

app_streamlit.py
Dashboard web interactivo para visualización de drift con:

Componentes Principales:

  • Resumen ejecutivo con métricas clave
  • Sistema de alertas visual (semáforo: 🟢🟡🔴)
  • Gráficos interactivos con Plotly:
    • Distribución de niveles de drift
    • Gauges para métricas promedio (PSI, KS, JS)
    • Top features con mayor drift
    • Comparación de distribuciones (histogramas, boxplots)
  • Filtros dinámicos por nivel y tipo de variable
  • Análisis detallado por feature individual
  • Tabla interactiva con todos los resultados
  • Exportación de reportes en CSV
  • Recomendaciones automáticas basadas en umbrales

Tecnologías UI:

  • Streamlit para la aplicación web
  • Plotly para gráficos interactivos
  • CSS personalizado para estilo profesional
  • Layout responsive de 2-3 columnas
  • Tabs para organización de contenido

README.md
Documentación completa del proyecto que incluye:

Secciones:

  • Problema de negocio y contexto
  • Solución implementada con diagrama de arquitectura
  • Descripción detallada del dataset (10,763 registros, 23 variables)
  • Hallazgos principales del EDA:
    • Desbalance crítico 95.25% vs 4.75%
    • Variables más predictivas con tests estadísticos
    • Multicolinealidad identificada
    • Perfil de clientes con riesgo
  • Pipeline de ML completo:
    • Feature engineering con 4 features derivados
    • Transformaciones por tipo de variable
    • Balanceo con SMOTE
  • Resultados de modelos (6 modelos entrenados)
  • Sistema de monitoreo con 4 métricas de drift
  • Guías de instalación paso a paso
  • Instrucciones de uso detalladas
  • Estructura del proyecto completa
  • Stack tecnológico con badges
  • Versionamiento y Git Flow
  • Conclusiones, impacto de negocio, recomendaciones

Características:

  • Badges profesionales (Python, Scikit-learn, Streamlit, etc.)
  • Diagramas ASCII art
  • Tablas comparativas formateadas
  • Emojis estratégicos para navegación visual
  • Links a documentación externa
  • Secciones plegables
  • Formato Markdown profesional

Actualizaciones

requirements.txt
Agregadas nuevas dependencias:

  • streamlit==1.28.0 (dashboard web)
  • plotly==5.17.0 (gráficos interactivos)
  • scipy (actualizado para tests estadísticos)

Funcionalidad del Sistema

Flujo de Monitoreo:

  1. model_monitoring.py analiza drift periódicamente
  2. Genera reportes JSON/CSV en data/monitoring/
  3. app_streamlit.py lee reportes y visualiza
  4. Usuario ve dashboard en http://localhost:8501
  5. Sistema genera alertas si drift > umbral
  6. Recomendación automática de reentrenamiento

Casos de Uso:

  • Monitoreo semanal/mensual de datos en producción
  • Detección temprana de cambios poblacionales
  • Decisión informada sobre reentrenamiento
  • Análisis de estabilidad del modelo
  • Comunicación visual con stakeholders

Estructura Generada

data/
└── monitoring/
├── drift_reports/
│ ├── drift_report_YYYYMMDD_HHMMSS.json
│ └── drift_report_YYYYMMDD_HHMMSS.csv
└── baseline_stats.pkl

Testing

model_monitoring.py ejecutado exitosamente
app_streamlit.py abre sin errores
Dashboard renderiza todas las visualizaciones
Filtros funcionan correctamente
Exportación de reportes operativa
Sistema de alertas responde a umbrales

Métricas de Código

  • model_monitoring.py: ~500 líneas, 3 clases, 15+ métodos
  • app_streamlit.py: ~600 líneas, layout multi-columna, 10+ gráficos
  • README.md: ~800 líneas, 15 secciones principales

Próximos Pasos

Con V1.2.0 completado, el sistema está listo para:

  1. Deployment en servidor
  2. Automatización con cron jobs
  3. Integración con CI/CD
  4. Alertas por email/Slack
  5. API REST para predicciones