Saltar al contenido

Una suave introducción a PyCaret para el aprendizaje automático

21 de noviembre de 2020

PyCaret es una biblioteca de aprendizaje de máquinas de código abierto en Python diseñada para facilitar la realización de tareas estándar en un proyecto de aprendizaje de máquinas.

Es una versión en Python del paquete de aprendizaje de la máquina Caret en R, popular porque permite que los modelos sean evaluados, comparados y ajustados en un conjunto de datos dado con sólo unas pocas líneas de código.

La biblioteca de PyCaret proporciona estas características, lo que permite al profesional del aprendizaje automático en Python comprobar de forma puntual un conjunto de algoritmos estándar de aprendizaje automático en un conjunto de datos de clasificación o regresión con una sola llamada a la función.

En este tutorial, descubrirás la biblioteca de código abierto de PyCaret Python para el aprendizaje automático.

Después de completar este tutorial, lo sabrás:

  • PyCaret es una versión en Python del popular y ampliamente utilizado paquete de aprendizaje de la máquina de caretas en R.
  • Cómo usar PyCaret para evaluar y comparar fácilmente los modelos estándar de aprendizaje de máquinas en un conjunto de datos.
  • Cómo usar PyCaret para afinar fácilmente los hiperparámetros de un modelo de aprendizaje de máquina de buen rendimiento.

Empecemos.

Una suave introducción a PyCaret para el aprendizaje automático

Una suave introducción a PyCaret para el aprendizaje automático
Foto de Thomas, algunos derechos reservados.

Resumen del Tutorial

Este tutorial está dividido en cuatro partes; son:

  1. ¿Qué es PyCaret?
  2. Conjunto de datos del sónar
  3. Comparando los modelos de aprendizaje de las máquinas
  4. Modelos de aprendizaje de la máquina de afinar

¿Qué es PyCaret?

PyCaret es una biblioteca de código abierto para aprender a usar la máquina Python inspirada en el paquete Caret R.

El objetivo del paquete caret es automatizar los principales pasos para evaluar y comparar los algoritmos de aprendizaje de la máquina para la clasificación y la regresión. El principal beneficio de la biblioteca es que se puede lograr mucho con muy pocas líneas de código y poca configuración manual. La biblioteca de PyCaret aporta estas capacidades a Python.

PyCaret es una biblioteca de código abierto y de bajo código para el aprendizaje de máquinas en Python que tiene como objetivo reducir el tiempo de ciclo de las hipótesis a las percepciones. Es muy adecuada para científicos experimentados en el campo de los datos que desean aumentar la productividad de sus experimentos de ML utilizando PyCaret en sus flujos de trabajo, o para científicos de datos ciudadanos y aquellos que son nuevos en la ciencia de los datos con poca o ninguna experiencia en codificación.

– Página web de PyCaret

La biblioteca de PyCaret automatiza muchos pasos de un proyecto de aprendizaje de la máquina, como:

  • Definir los datos se transforma para realizar (setup())
  • Evaluar y comparar los modelos estándar (compare_models())
  • Sintonizar los hiperparámetros del modelo (tune_model())

Así como muchas más características no limitadas a la creación de conjuntos, guardar modelos y desplegar modelos.

La biblioteca de PyCaret tiene una gran cantidad de documentación para el uso de la API; puedes empezar aquí:

No exploraremos todas las características de la biblioteca en este tutorial; en su lugar, nos centraremos en la simple comparación de modelos de aprendizaje de máquinas y en el ajuste de hiperparámetros.

Puedes instalar PyCaret usando tu gestor de paquetes Python, como pip. Por ejemplo:

Una vez instalada, podemos confirmar que la biblioteca está disponible en su entorno de desarrollo y que funciona correctamente imprimiendo la versión instalada.

Ejecutando el ejemplo se cargará la biblioteca de PyCaret y se imprimirá el número de versión instalada.

Su número de versión debería ser el mismo o más alto.

Si necesitas ayuda para instalar PyCaret en tu sistema, puedes ver las instrucciones de instalación aquí:

Ahora que estamos familiarizados con lo que es PyCaret, exploremos cómo podríamos usarlo en un proyecto de aprendizaje de máquinas.

Conjunto de datos del sónar

Usaremos el conjunto de datos de clasificación binaria estándar del Sonar. Puede aprender más sobre ello aquí:

Podemos descargar el conjunto de datos directamente de la URL y cargarlo como un Pandas DataFrame.

El PyCaret parece requerir que un conjunto de datos tenga nombres de columna, y nuestro conjunto de datos no tiene nombres de columna, por lo que podemos establecer el número de columna como el nombre de la columna directamente.

Finalmente, podemos resumir las primeras filas de datos.

Recomendado:  Escalada de la colina estocástica en Python desde cero

A continuación se muestra un ejemplo completo de la carga y resumen del conjunto de datos del Sonar.

Al ejecutar el ejemplo primero se carga el conjunto de datos y se reporta la forma, mostrando que tiene 208 filas y 61 columnas.

Las primeras cinco filas se imprimen entonces mostrando que las variables de entrada son todas numéricas y la variable objetivo es la columna «60» y tiene etiquetas de cadena.

A continuación, podemos usar PyCaret para evaluar y comparar un conjunto de algoritmos estándar de aprendizaje de máquinas para descubrir rápidamente lo que funciona bien en este conjunto de datos.

PyCaret para comparar los modelos de aprendizaje de las máquinas

En esta sección, evaluaremos y compararemos el rendimiento de los modelos estándar de aprendizaje de máquinas en el conjunto de datos de clasificación del Sonar.

Primero, debemos establecer el conjunto de datos con la biblioteca de PyCaret a través de la función setup(). Esto requiere que proporcionemos el Pandas DataFrame y que especifiquemos el nombre de la columna que contiene la variable objetivo.

El setup() también le permite configurar la preparación de datos simples, como el escalado, las transformaciones de potencia, el manejo de datos faltantes y las transformaciones PCA.

Especificaremos los datos, la variable objetivo, y desactivaremos la salida HTML, la salida verbosa y las solicitudes de retroalimentación de los usuarios.

A continuación, podemos comparar los modelos estándar de aprendizaje de la máquina llamando al compare_models() función.

Por defecto, evaluará los modelos utilizando una validación cruzada de 10 veces, clasificará los resultados según la precisión de la clasificación y devolverá el mejor modelo.

Estos son buenos valores predeterminados, y no necesitamos cambiar nada.

Llama al compare_models() también informará de un cuadro de resultados en el que se resumirán todos los modelos evaluados y su rendimiento.

Por último, podemos informar del modelo de mejor rendimiento y su configuración.

Enlazando todo esto, el ejemplo completo de evaluación de un conjunto de modelos estándar en el conjunto de datos de clasificación del Sonar se enumera a continuación.

Recomendado:  Recocido simulado desde cero en Python

Ejecutando el ejemplo se cargará el conjunto de datos, se configurará la biblioteca de PyCaret, se evaluará un conjunto de modelos estándar y se informará del mejor modelo encontrado para el conjunto de datos.

Nota: Sus resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo unas cuantas veces y compare el resultado promedio.

En este caso, podemos ver que el «Clasificador de árboles extra» tiene la mejor precisión en el conjunto de datos con una puntuación de alrededor del 86,95 por ciento.

Podemos entonces ver la configuración del modelo que se utilizó, que parece que usó valores de hiperparámetros por defecto.

Podríamos usar esta configuración directamente y ajustar un modelo en todo el conjunto de datos y usarlo para hacer predicciones sobre nuevos datos.

También podemos utilizar la tabla de resultados para tener una idea de los tipos de modelos que funcionan bien en el conjunto de datos, en este caso, conjuntos de árboles de decisión.

Ahora que estamos familiarizados con la forma de comparar modelos de aprendizaje de máquinas usando PyCaret, veamos cómo podríamos usar la biblioteca para afinar los hiperparámetros del modelo.

Modelos de aprendizaje de la máquina de afinar

En esta sección, afinaremos los hiperparámetros de un modelo de aprendizaje de máquina en el conjunto de datos de clasificación del Sonar.

Debemos cargar y configurar el conjunto de datos como hicimos antes al comparar los modelos.

Podemos afinar los hiperparámetros del modelo usando el tune_model() en la biblioteca de PyCaret.

La función toma una instancia del modelo a afinar como entrada y sabe qué hiperparámetros afinar automáticamente. Se realiza una búsqueda aleatoria de los hiperparámetros del modelo y el número total de evaluaciones puede ser controlado a través de la función «n_iter«argumento».

Por defecto, la función optimizará el ‘Precisióny evaluará el rendimiento de cada configuración utilizando una validación cruzada de 10 veces, aunque esta sensata configuración por defecto puede ser cambiada.

Podemos realizar una búsqueda aleatoria del clasificador de árboles extra de la siguiente manera:

La función devolverá el modelo de mejor rendimiento, que puede utilizarse directamente o imprimirse para determinar los hiperparámetros seleccionados.

También imprimirá una tabla con los resultados de la mejor configuración del número de pliegues en la validación cruzada del pliegue k (por ejemplo, 10 pliegues).

Enlazando esto, el ejemplo completo de la sintonización de los hiperparámetros del clasificador de árboles extra en el conjunto de datos del Sonar se enumera a continuación.

Ejecutando el ejemplo primero se carga el conjunto de datos y se configura la biblioteca de PyCaret.

A continuación se realiza una búsqueda en cuadrícula que informa sobre el rendimiento de la configuración de mejor rendimiento en los 10 pliegues de validación cruzada y la precisión media.

Nota: Sus resultados pueden variar dada la naturaleza estocástica del algoritmo o el procedimiento de evaluación, o las diferencias en la precisión numérica. Considere ejecutar el ejemplo unas cuantas veces y compare el resultado promedio.

En este caso, podemos ver que la búsqueda aleatoria encontró una configuración con una precisión de alrededor del 75,29 por ciento, que no es mejor que la configuración por defecto de la sección anterior que alcanzó una puntuación de alrededor del 86,95 por ciento.

Podríamos mejorar la búsqueda de la cuadrícula especificando a la tune_model() funcionan qué hiperparámetros buscar y qué rangos buscar.

Más lecturas

Esta sección proporciona más recursos sobre el tema si desea profundizar en él.

Resumen

En este tutorial, descubriste la biblioteca de código abierto de PyCaret Python para el aprendizaje automático.

Específicamente, aprendiste:

  • PyCaret es una versión en Python del popular y ampliamente utilizado paquete de aprendizaje de la máquina de caretas en R.
  • Cómo usar PyCaret para evaluar y comparar fácilmente los modelos estándar de aprendizaje de máquinas en un conjunto de datos.
  • Cómo usar PyCaret para afinar fácilmente los hiperparámetros de un modelo de aprendizaje de máquina de buen rendimiento.

¿Tiene alguna pregunta?
Haga sus preguntas en los comentarios de abajo y haré lo posible por responder.

Descubre el aprendizaje rápido de la máquina en Python!

Aprendizaje de la máquina maestra con Python

Desarrolle sus propios modelos en minutos

…con sólo unas pocas líneas de código de aprendizaje científico…

Aprende cómo en mi nuevo Ebook:
Dominio de la máquina de aprendizaje con la pitón

Cubre Tutoriales de auto-estudio y proyectos integrales como:
Cargando datos, visualización, modelado, tuningy mucho más…

Finalmente traer el aprendizaje automático a
Sus propios proyectos

Sáltese los académicos. Sólo los resultados.

Ver lo que hay dentro