Lo Bueno, lo Malo y lo Feo de Pd.Get_Dummies

Lo bueno, lo malo y lo feo de Pd.Get_Dummies

Esto es para los fanáticos de pd.get_dummies

¡Hola gente! 🤠

De acuerdo, lo entiendo. Una de las formas más sencillas de convertir una variable categórica en un conjunto de variables ficticias en Python es con la función pd.get_dummies() de Pandas. ¿Por qué perder el tiempo importando OneHotEncoder de sklearn, ejecutando un .fit_transform(), etc, etc, etc? ¡Hablemos de tedioso!

Este artículo primero presentará un conjunto de datos simple con fines de demostración que consiste en un conjunto de pruebas que contiene variables categóricas no encontradas en el conjunto de entrenamiento. Luego, demostrará cómo el uso de pd.get_dummies() puede llevar a problemas con los datos de demostración. Y, finalmente, mostrará cómo evitar ese problema con OneHotEncoder de sklearn.

Crédito de la imagen: Ilustración del autor usando texto para imagen en Canva. Se muestra: 'Tres osos panda vestidos como vaqueros del oeste'.

Un conjunto de datos simple para la demostración

Aquí tenemos un conjunto de datos simple que incluye una característica categórica llamada SO. La columna SO enumera los sistemas operativos de computadora. Utilizaremos estos datos ficticios con fines de demostración. En train_df se encuentra el conjunto de datos de entrenamiento ficticio de demostración. Mientras que en test_df tenemos el conjunto de datos de prueba ficticio de demostración.

En nuestro caso de demostración ficticio, el conjunto de pruebas contiene valores categóricos que no están presentes en el conjunto de entrenamiento. Esta falta de coincidencia causará problemas.

import pandas as pdtrain_df = pd.DataFrame({'OS': ['Windows', 'MacOS',                                 'Linux', 'Windows', 'MacOS']})test_df = pd.DataFrame({'OS': ['Windows', 'MacOS',                                'Android', 'Unix' 'iOS']})

En nuestros datos de entrenamiento, tenemos tres sistemas operativos: Windows, MacOS y Linux. Pero en nuestros datos de prueba, tenemos categorías adicionales como Android, Unix e iOS.

Un modelo ajustado con train_df.get_dummies() no funcionará con los datos de prueba de test_df.get_dummies(). Los resultados no coinciden.

Crédito de la imagen: Ilustración del autor creada en Canva usando imágenes de Canva. Un maniquí de suministros de arte.

El problema con pd.get_dummies()

Cuando aplicas la función pd.get_dummies() tanto a nuestros conjuntos de datos de entrenamiento como de prueba, esto es lo que obtendrás.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Protegiendo el futuro de nuestros practicantes cultivando la próxima generación en medio del avance corporativo de la IA

Durante mi enseñanza en el Master en Gestión de la Asia Pacific ESSEC en el vibrante campus de Singapur, nos adentram...

Ciencias de la Computación

Los Taxis Dron hacen su primera prueba en Israel.

Israel ha comenzado vuelos de prueba de aeronaves autónomas para carga pesada, y eventualmente para transporte de pas...

Inteligencia Artificial

Conoce DiffusionDet Un Modelo de Inteligencia Artificial (IA) Que Utiliza Difusión para la Detección de Objetos

La detección de objetos es una técnica poderosa para identificar objetos en imágenes y videos. Gracias al aprendizaje...

Inteligencia Artificial

Permite un entrenamiento más rápido con la biblioteca de paralelismo de datos de Amazon SageMaker

El entrenamiento de modelos de lenguaje de gran tamaño (LLM, por sus siglas en inglés) se ha vuelto cada vez más popu...

Inteligencia Artificial

Investigadores de ETH Zurich y Microsoft presentan SCREWS Un marco de inteligencia artificial para mejorar el razonamiento en modelos de lenguaje grandes.

Los grandes modelos de lenguaje (LLMs) han tenido éxito en varias tareas de razonamiento diferentes. Para garantizar ...