Tracking de Modelos y Métricas con MLflow y CycleLearn
Clase 11 de 35 • Curso de MLOPS: Despliegue de Modelos de Machine Learning
Resumen
¿Cómo almacenar y hacer seguimiento de modelos en CycleLearn?
La relevancia de guardar adecuadamente un modelo de Machine Learning no puede subestimarse. Con CycleLearn, no solo almacenamos modelos como artefactos, sino que también podemos cargarlos posteriormente para realizar inferencias con datos inéditos. Este proceso se efectúa teniendo en cuenta las transformaciones previas realizadas. A través del uso de MLflow con CycleLearn, la tarea se facilita, permitiéndonos registrar y gestionar modelos de manera eficiente y organizada.
¿Cómo loguear un modelo con MLflow y CycleLearn?
Al usar MLflow con CycleLearn, el registro de un modelo se vuelve un proceso sencillo y fascinante. La función principal es guardar el modelo con un nombre claro y reconocible, lo que simplifica futuras referencias durante el proceso de inferencia.
MLflow.CycleLearn.log_model(model, "nombre_del_modelo")
Al asignar un formato específico al nombre del modelo, facilitamos su identificación, esencial al querer realizar inferencias o análisis adicionales con el modelo guardado.
¿Cómo calcular y registrar métricas de rendimiento?
Al trabajar con modelos, es crucial evaluar su rendimiento utilizando métricas específicas. En este contexto, se enfoca en el cálculo de la métrica de Área Bajo la Curva ROC (AUC) tanto para el conjunto de entrenamiento como para el de prueba. Al redondear estas métricas a dos decimales, obtenemos resultados más concisos y fáciles de interpretar y comparar.
Ejemplo de cálculo y registro de métricas:
-
Cálculo del AUC en entrenamiento y prueba
-
Registro de métricas adicionales como precisión y recall
-
Redondeo de resultados a dos decimales
auc_train = round(compute_auc(y_true_train, y_pred_train), 2) auc_test = round(compute_auc(y_true_test, y_pred_test), 2)
Al tener las métricas listas, se extienden y se registran para su fácil acceso:
metrics.extend([auc_train, auc_test, precision_train, recall_train, precision_test, recall_test])
¿Cómo generar un informe de clasificación y matriz de confusión?
El informe de clasificación y la matriz de confusión son recursos clave para comprender el desempeño de un modelo, especialmente en problemas de clasificación multicategoría. Estos permiten visualizar los errores y aciertos del modelo y tomar decisiones basadas en datos concretos.
Generación de informes de clasificación:
-
Creación de un reporte de clasificación tanto para los datos de entrenamiento como de prueba.
-
Decodificación de predicciones para una mejor visualización en la matriz de confusión.
report_train = classification_report(y_true_train, y_pred_train) report_test = classification_report(y_true_test, y_pred_test)
Presentar estos reportes a través de print
en pantalla ofrece una visión clara de las métricas de rendimiento.
Creación de la matriz de confusión:
La matriz de confusión es configurada para destacar los verdaderos positivos, mostrando visualmente los errores y aciertos en las predicciones del modelo. La implementación de una función de decodificación facilita esta tarea al mapear índices numéricos a etiquetas comprensibles.
confusion_matrix_display(y_true_decoded, y_pred_decoded)
¿Qué funcionalidades adicionales puede ofrecer la función de tracking?
Al definir una función de tracking para registrar métricas y parámetros, se puede realizar un seguimiento detallado de modelos a lo largo del tiempo. Esto incluye:
- Registro de hiperparámetros del modelo.
- Creación de un informe de clasificación que utilice visualización de la matriz de confusión.
- Capacidad de integrar modelos validados mediante validaciones cruzadas o configuraciones de búsqueda en parrilla (grid search).
Estas funcionalidades combinadas facilitan un robusto seguimiento y mejora continua de los modelos a medida que se implementan y evalúan distintas estrategias y configuraciones.