Análisis de Drift y Valores Faltantes con Evidently
Clase 33 de 35 • Curso 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
- Generar el reporte:
- Crea una variable llamada
report
y llama al métodoreport
de Evidently. - Define una lista de métricas que incluirá herramientas como
column_drift_metric
para evaluar la deriva en las predicciones, ydata_set_drift_metric
para el conjunto completo de datos.
- 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.
- 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!