Proyecto Mlflow — Modelo Puntaje Crediticio

Gabriel Leguisamo
4 min readNov 22, 2023

--

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:

--

--