Análisis de Drift y Valores Faltantes con Evidently

Clase 33 de 35Curso de MLOPS: Despliegue de Modelos de Machine Learning

Resumen

¿Cómo implementar el método de Column Mapping con Evidently?

La herramienta de Evidently ofrece soluciones para identificar problemas como fugas o fallas en las predicciones. Este proceso comienza con la implementación del método de Column Mapping, que se utiliza para evaluar la deriva o falta de valores en tu conjunto de datos. Aquí te explicamos cómo llevarlo a cabo.

  • Configuración del Column Mapping:
  • Genera una variable llamada column_mapping.
  • Define el método e indica que no se hará un análisis basado en el objetivo (target), estableciéndolo en on.
  • Especifica donde se encuentran las predicciones en tus conjuntos de datos, en la columna llamada predictions.
  • Determina si hay variables numéricas y categóricas, siendo necesarias darle una lista de strings si posees más de una columna de este tipo.

¿Cómo generar un reporte de análisis del drift?

Con Evidently, puedes generar un reporte que incluya una lista de métricas para evaluar la deriva de tus predicciones y detectar valores faltantes en los datos. Este informe es esencial para asegurar que el modelo sigue siendo efectivo.

Creación de un reporte y especificación de métricas

  1. Generar el reporte:
  • Crea una variable llamada report y llama al método report de Evidently.
  • Define una lista de métricas que incluirá herramientas como column_drift_metric para evaluar la deriva en las predicciones, y data_set_drift_metric para el conjunto completo de datos.
  1. Especifica las métricas a utilizar:
  • La métrica data_set_missing_values_metric te ayudará a identificar valores faltantes que puedan afectar el rendimiento del modelo.
  1. Ejecutar y generar el Visual Report:
  • Usa report.run para iniciar el análisis.
  • Visualiza el reporte usando report.show en modo en línea si trabajas en un notebook.

Interpretación y utilidad de los resultados

El reporte también ofrece datos adicionales como la distribución de datos y el porcentaje de valores faltantes. Esto es crucial para equilibrar tus conjuntos de datos train y test y garantizar evaluaciones justas.

  • Ejemplo de resultados:
  • Un score de drift bajo, como 0.05, es aceptable; si aumenta más de 0.45, es necesario reconsiderar tu modelo.
  • La proporción de valores faltantes debe ser mínima para asegurar la validez del modelo; en este caso es 0%.

¿Cómo integrar los resultados en tu flujo de trabajo?

Tras generar un reporte visual, es útil almacenar métricas de forma estructurada en un diccionario. De esta manera, puedes integrarlo fácilmente en un pipeline de Machine Learning y utilizarlo para tomar decisiones estratégicas.

Almacenamiento e impresión de las métricas

  • Almacena los resultados del reporte en un diccionario para facilitar su uso en futuras tareas como la decisión de activar o desactivar partes del flujo de Machine Learning.

  • Algunas variables clave que pueden analizarse incluyen el score de drift y el número de columnas con drift. Ejemplo de código para este propósito:

    Almacenamiento de métricas en un diccionario

    result = report.as_dict()

    Obtención del score de data drift

    drift_score = result['metrics'][0]['result']['score']

    Verificación de columnas con drift

    columns_drift = result['metrics'][1]['result']['number_of_columns_with_drift']

    Nada de valores faltantes en el conjunto de datos actual

    missing_values_current = result['metrics'][2]['result']['share_of_missing_values']

Con estos pasos, puedes realizar un análisis continuo de tus datos y adaptarte a los cambios necesarios para mantener tus modelos eficaces. Evidently es una herramienta poderosa para asegurarte de que tu proceso de predicción sigue ofreciendo un rendimiento óptimo. ¡Continúa explorando y avanzando en el emocionante mundo del Machine Learning!