Trabajando el Pipeline de Machine Learning con PyCaret - Parte 4

Daniel Morales
Por Daniel Morales - Screencast # 8
Nov 17, 2020


Prediccion
  • Antes de finalizar el modelo, es aconsejable realizar una comprobación final mediante la predicción del conjunto de test/hold-out y la revisión de las métricas de evaluación.
  • Si se mira la tabla de información, se verá que el 30% (6.841 muestras) de los datos se ha separado como muestra de test/hold-out
  • Todas las métricas de evaluación que hemos visto anteriormente son resultados validados cruzados basados en el conjunto de entrenamiento (70%) solamente.
  • Ahora, usando nuestro modelo final de entrenamiento almacenado en la variable tuned_rf predecimos contra la muestra de test y evaluaremos las métricas para ver si son materialmente diferentes de los resultados del CV
  • La precisión del conjunto de test es de 0,8135 en comparación con el 0,8225 alcanzado en los resultados del tuned_rf 
  • Esta no es una diferencia significativa. Si hay una gran variación entre los resultados del conjunto de test y el de entrenamiento, esto indicaría normalmente un sobreajuste, pero también podría deberse a varios otros factores y requeriría una investigación más a fondo
  • En este caso, seguiremos adelante con la finalización del modelo y la predicción sobre datos no vistos (el 5% que habíamos separado al principio y que nunca se expuso a PyCaret).
  • (SUGERENCIA: Siempre es bueno mirar la desviación estándar de los resultados del conjunto de entrenamiento cuando se usa create_model().)

Predecir en data_unseen
  • La función predict_model() también se utiliza para predecir sobre el conjunto de datos no vistos. 
  • La única diferencia es que esta vez pasaremos el parámetro data_unseen.
  • data_unseen es la variable creada al principio del tutorial y contiene el 5% (1200 muestras) del conjunto de datos original que nunca fue expuesto a PyCaret.
  • Label es la predicción y el score es la probabilidad de la predicción. 
  • Observa que los resultados predichos se concatenan con el conjunto de datos original, mientras que todas las transformaciones se realizan automáticamente en segundo plano.
  • Hemos terminado el experimento finalizando el modelo tuned_rf que ahora está almacenado en la variable final_rf
  • También hemos usado el modelo almacenado en final_rf para predecir data_unseen
  • Esto nos lleva al final de nuestro experimento, pero aún queda una pregunta por hacer: ¿Qué pasa cuando tienes más datos nuevos para predecir? 

Guardando el modelo
  • Hemos terminado el experimento finalizando el modelo tuned_rf que ahora está almacenado en la variable final_rf
  • También hemos usado el modelo almacenado en final_rf para predecir data_unseen
  • Esto nos lleva al final de nuestro experimento, pero aún queda una pregunta por hacer: ¿Qué pasa cuando tienes más datos nuevos para predecir? 
  • Para cargar un modelo guardado en una fecha futura en el mismo entorno o en uno alternativo, utilizaríamos la función load_model() de PyCaret y luego aplicaríamos fácilmente el modelo guardado en nuevos datos no vistos para la predicción

Cargando el modelo guardado
  • Una vez que el modelo se carga en el entorno, puede utilizarse simplemente para predecir cualquier nuevo dato utilizando la misma función predict_model()
  • A continuación hemos aplicado el modelo cargado para predecir los mismos data_unseen que utilizamos anteriormente.

Pros y Cons
  • Como con cualquier nueva libreria, todavía hay espacio para mejorar. 
  • Enumeraré algunos de los pros y contras que encontré al usar la biblioteca.
  • Pros
    • Hace que la parte de modelado de su proyecto sea mucho más fácil. 
    • Puedes crear muchos análisis diferentes con sólo una línea de código.
    • Olvídate de pasar una lista de parámetros al ajustar el modelo. PyCaret lo hace automáticamente para ti.
    • Tienes muchas opciones diferentes para evaluar el modelo, de nuevo, con sólo una línea de código
    • Como está construido sobre famosas librerías de ML, puede compararlo fácilmente con su método tradicional
  • Cons
    • La biblioteca está en sus primeras versiones, por lo que no está lo suficientemente madura y es propensa a los bugs, como este, que se supone deberia funcionar sin hacer ninguna modificación adicional:
    • Es una caja negra, así que no se ve realmente lo que está pasando dentro de ella. Por lo tanto, no lo recomendaría para principiantes.
    • Podría hacer el proceso de aprendizaje un poco superficial.
Conclusiones

  • Este tutorial ha abarcado todo el proceso de ML, desde la ingestión de datos, el preprocesamiento, el entrenamiento del modelo, el ajuste de los hiperparámetros, la predicción y el almacenamiento del modelo para su uso posterior.
  • Hemos completado todos estos pasos en menos de 10 comandos que están construidos de forma natural y son muy intuitivos de recordar, como create_model(), tune_model(), compare_models(). 
  • Recrear todo el experimento sin PyCaret habría requerido más de 100 líneas de código en la mayoría de las librerías
  • La libreria tambien permite hacer cosas más avanzadas, como preprocesamiento avanzado, ensamblaje, apilamiento generalizado y otras técnicas que permiten personalizar completamente el pipeline de ML y que son imprescindibles para cualquier científico de datos

“Trabajando el Pipeline de Machine Learning con PyCaret - Parte 4”
– Daniel Morales twitter social icon Tweet

Compartir este artículo:

0 Comentarios

Crear un comentario
Ingresar para Comentar
divider graphic

Otros Tutoriales

7

Trabajando el Pipeline de Machine Learning con PyCaret - Parte 3

Creando el Modelocreate_model es la función más granular de PyCaret y a menudo es la base de la mayoría de las funcionalidades de PyCaretComo su no...

Daniel Morales
Por Daniel Morales
12

Trabajando el Pipeline de Machine Learning con PyCaret - Parte 2

Puedes acceder a la Parte#1 de Trabajando el Pipeline de Machine Learning con PyCaret aqui: Entorno de PyCaretAhora vamos a configurar el ambiente ...

Daniel Morales
Por Daniel Morales
22

Trabajando el Pipeline de Machine Learning con PyCaret - Parte 1

Dividiremos este video tutorial en 4 pasosParte #1 - Introducción a la librería, dataset a trabajar e importancia en la división de los datosParte ...

Daniel Morales
Por Daniel Morales
Partners

arrow-up icon