Proyecto Mlflow — Modelo Puntaje Crediticio
Profesor: Luiggi Silva
Estudiante: Gabriel Leguisamo
Curso: Machine Learning 3ra. ED
Objetivos del Proyecto:
- Obtener un modelo con precisión superior a los modelos obtenidos en el notebook compartido.
- Seguir el flujo de carga de modelos en Mlflow.
- Probar el modelo final con el aplicativo de Streamlit.
Resolución del Proyecto:
1. FineTuning del modelo obtenido:
Para el proyecto se tomo como referencia el modelo final con la evaluación del XGBoostClassifier.
Primero se muestran los resultados obtenidos con los diferentes funciones , obteniendo el máximo valor de precisión de 0.776978:
A continuación se muestran los parámetros utilizados originalmente para tunear el modelo de XGBoost:
Para mejorar la precisión obtenida aún más se modificaron y agregaron parámetros para el uso de la función de Optimización de la función Optuna. Los parámetros modificados fueron:
· learning_rate: se modificó el rango de 0.05 a 1.
· Max_depth: se modificó el rango de 4 a 8.
· n_estimators: se modificó el rango de 200 a 400.
· subsample: se modificó el rango de 0.8 a 1 .
Los parámetros relevantes agregados constituyen:
· min_child_weight: se le colocó el rango de 1–4 , en donde valores cercanos a 1 probaron ser efectivos.
· lambda: se le colocó el valor de 1, este valor tiene un efecto positivo en los resultados de precisión modelo.
También se editó el valor de n_trials de 100 a 200 intentos , probando tener mejores resultados con estos tiempos de búsqueda.
Como resultado tras múltiples intentos se obtuvieron 2 modelos con niveles de precisión mayores a los de clasificación y tuneo original:
Se depuraron los modelos no necesarios y se conservaron los modelos con mejores resultados:
2. Generar Modelo en Mlflow:
Durante las ejecuciones anteriores guardamos nuestros experimentos de modelo en la carpeta de Taller Tuneado.
También podemos ordenar los modelos con el filtro de mejores resultados de precisión y presionar sobre nuestro mejor modelo en donde podemos observar los mejores parámetros obtenidos:
Posterior a ello registramos nuestro modelo en Mlflow con el comando de register_model() asignándole como nombre “model final final actualizado”. Luego de ello cambiamos su Stage a Production.
Nos aparecerá un nuevo modelo en la pestaña de Models de Mlflow:
Podemos ver las versiones creados para este modelo , en este caso sería una sola versión y también nos mostrará el experimento que tomó para crear el modelo:
3. Prueba de Aplicativo en Framework de Streamlit:
Una vez ya contamos con nuestro modelo , podemos utilizar la framework de Streamlit para pobrar nuestro modelo con diferentes campos de entrada del cliente:
Para cargar nuestro modelo , podemos utilizar la función de load_model() y la ruta de acceso de nuestro modelo , declarando el nombre del modelo en el código:
Se utiliza streamlit para declarar diferentes elementos frontend que pueden controlar los datos de entrada para nuestro modelo:
Y de esta manera podemos ver nuestro modelo en acción junto con un front-end para recopilar y probar los datos de entrada para obtener una predicción del puntaje crediticio del cliente: