proyecto-data-science

Un lector me preguntó recientemente en uno de mis blogs si había probado PyCaret. Me prometí que iba a probarlo, y la verdad que esoty muy contento de haberlo hecho. PyCaret te permite ejecutar un proyecto de data science desde la limpieza de datos, lidiar con el desequilibrio de clases, hasta modelos de aprendizaje automático hiperajustados con dos líneas de código. ¿No me crees? Está bien, yo tampoco lo podía creer cuando lo probé por primera vez pero el hecho es que funciona. Déjame mostrarte PyCaret en acción primero y luego podemos profundizar en esta biblioteca. Para fines de demostración, utilizaré el conjunto de datos de Titanic Survivor, que incluye NaNvalores categóricos, numéricos. Aquí está el resultado:

Esto es lo que acaba de suceder: PyCaret lidió con los datos categóricos, dividió el conjunto de datos en train y conjuntos de prueba, registró el experimento, verificó los valores atípicos, solucionó el desequilibrio de clases y ejecutó modelos desde Regresión logística a XGBoost en menos de 30 segundos. También obtuvo una precisión de 0.8154 con 2 líneas de código. Ahora, entendamos más sobre cómo funciona PyCaret y cómo puedes usarlo.

Tabla de contenidos

¿Cómo llevar a cabo este proyecto de Data Science?

¿Qué es PyCaret?

Esto es lo que dice su sitio web:

PyCaret es una biblioteca de aprendizaje automático de low-code y de código abierto en Python que te permite pasar de preparar tus datos a implementar tu modelo en cuestión de minutos en el entorno de notebook que elijas.

Parece que PyCaret hace lo que promete. Va desde la preparación de tus datos hasta la implementación de modelos supervisados ​​y no supervisados ​​con 2 o 3 líneas de código. Lo probé en algunos proyectos diferentes, incluidos algunos antiguos en los que funcionó en el pasado, y los resultados fueron muy similares a los que obtuve después de una semana de trabajo. Para mostrarte cómo funciona, creemos un proyecto de clasificación juntos. Puedes encontrar el cuaderno que utilicé para este artículo aquí. Pronto también publicaré un proyecto de regresión. Tendrás que estar muy atent@!

Instalación

Hay algunas formas de instalar a PyCaret a través de tu terminal. . Se recomienda encarecidamente utilizar un entorno virtual para evitar conflictos con otras bibliotecas. El primero es escribir pip install pycaret en tu terminal, que es una versión más ligera de PyCaret y sus dependencias estrictas. Para instalar la versión completa, puedes escribir pip install pycaret[full], que es la que recomiendo.

Iniciar un nuevo proyecto

PyCaret está tan seguro de lo que ofrece, que su equipo nos brinda 55 conjuntos de datos que puedes probar la librería por tu cuenta. Estos son los problemas incluidos: detección de anomalías, minería de reglas de asociación, clasificación binaria y multiclase, agrupamiento, PNL y regresión.

Una vez que hayas instalado PyCaret, puedes escribir lo siguiente en un Jupyter notebook para obtener la lista de conjuntos de datos que ponen a disposición.

# Get data  from pycaret.datasets import get_data  from pycaret.classification import *  index = get_data('index')

La lista de conjuntos de datos es larga y no los agregaré todos aquí, pero estos son los conjuntos de datos de clasificación entre los que puedes elegir:

Para este proyecto, iré con el proyecto predeterminado de la tarjeta de crédito. Es algo desafiante y está muy cerca de un problema de la vida real. Para elegir un conjunto de datos, simplemente escribe data = get_data(‘name_of_the_dataset’). Dado que probaremos el conjunto de datos predeterminado de la tarjeta de crédito, debemos escribir data = get_data(‘credit’ )y ejecutar la celda.

Ahora, estamos listos para la preparación de datos. Tomará una línea de código. PyCaret devolverá una tabla con la información del conjunto de datos y podremos tomar decisiones sobre cómo queremos proceder. Para hacerlo, configuraremos el conjunto de datos, la etiqueta de destino, el nombre del experimento, etc. Aquí está la parte más importante del código:

clf1 = setup(data, target = ‘default’, session_id=123, log_experiment=True, experiment_name=’default1')

Una vez que el código indicado anteriormente está corriendo, tenemos que hacer las siguientes preguntas: Los siguientes tipos de datos se han deducido automáticamente. Si son correctos, presione Intro para continuar o escribe «Salir» de lo contrario. Escribe enter para continuar.

Lo que hizo este código anterior fue pasar por la limpieza de datos, dividir la prueba del train, probar la transformación de registros, polinomios, convertir datos categóricos, resolver el desequilibrio de clases y cualquier otra preparación de datos que puedas imaginar. Puedes ver que escribí log_transformation = True como ejemplo, pero hay docenas de opciones de preparación de datos. Te recomiendo encarecidamente que escribas shift + taby compruebes todo lo que puedes hacer con la preparación de datos. Podría escribir un artículo completo al respecto (y podría hacerlo), pero por ahora, sigamos con lo básico.

Ejecución de modelos

Ahora es el momento de ejecutar modelos de referencia. Hasta ahora, después de cargar el conjunto de datos, he escrito una línea de código. Ahora ejecutaremos 16 modelos de aprendizaje automático con otra línea de código. Usaré 5 pliegues para las validaciones cruzadas.

La ejecución de todos los modelos tomó 1:36 min, incluidos algunos modelos de conjuntos complejos. Comprobemos los resultados:

Varias cosas que hay que destacar en este punto. Primero, XGBoost falló. Está bien. Tenemos otros 15 modelos para analizar. PyCaret nos brinda múltiples métricas y destaca los mejores resultados para cada métrica. Para este proyecto, debemos considerar la métrica de recuperación, que se utiliza cuando el costo de los falsos negativos es alto y obtuvimos una puntuación de recuperación de 0.90. También puedes crear modelos individuales simplemente escribiendo, por ejemplo qda = create_model(‘qda’).

Qda significa el modelo de análisis discriminante cuadrático. De forma predeterminada, PyCaret divide el conjunto de prueba en 10 pliegues. Puedes editarlo escribiendo qda = create_model(‘Ada’, fold = 5). Para comprobar la lista completa de modelos que puedes ejecutar, la biblioteca que están usando y la abreviatura, escribe models().

Y puedes escribir tune_models(lr)para ajustar los hiperparámetros. Lo que en este caso mejoró algunas métricas, pero en realidad disminuyó la puntuación de recuperación.

Y hay muchas otras cosas para las que puedes usar PyCaret, por ejemplo analizar e interpretar modelos, probar modelos con conjuntos reservados, guardar e implementar modelos.

Te animo a que visites su sitio web y consultes su documentación, proyectos y más tutoriales. Hay mucho contenido que cubrir, aunque eso lo analizaré en otro artículo

Conclusiones finales

PyCaret parece asombroso y cumple lo prometido. Sin embargo, como siempre me gusta recordar a los lectores, la ciencia de datos es un rol complejo y no se puede sustituir a un profesional con unas pocas líneas de códigos. Si deseas utilizarlo PyCaret como un paso adicional para su próximo proyecto y comprende el potencial de tu conjunto de datos, hágalo. Lo probé con múltiples conjuntos de datos y los resultados fueron muy cercanos a los que pude obtener cuando trabajé una semana completa en un proyecto. Sin embargo, no recomiendo usarlo para tus resultados finales o como un atajo. Puedes agregarlo como parte del proceso y obtener información rápida sin tener que escribir docenas de líneas de código. Diviértete probándolo y cuéntame cómo te va.

Pronto publicaré un proyecto de regresión usando PyCaret, así que sígueme aquí en para estar al día. Si te ha gustado este artículo, no olvides dejar tus aplausos. Me motiva a seguir escribiendo.

Por Ismael Araujo

Soy data scientist y machine learning engineer con experiencia en marketing e inteligencia empresarial. Me apasiona resolver problemas basados en datos, aprender los últimos modelos estadísticos y creo firmemente que la educación puede cambiar el mundo. Mi experiencia en marketing, ingeniería de back-end, análisis estadístico, aprendizaje automático, PNL y desarrollo web me enseñó a nunca decir no a un buen problema empresarial.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *