Coursera Learner working on a presentation with Coursera logo and
Coursera Learner working on a presentation with Coursera logo and

La codificación categórica es una técnica para codificar datos categóricos. Tenga en cuenta que los datos categóricos son los conjuntos de variables que contienen variables de etiqueta en lugar de valores numéricos. Muchos algoritmos de aprendizaje automático son incapaces de procesar variables categóricas. Por lo tanto, es importante codificar los datos en una forma adecuada para poder preprocesar estas variables. Como necesita ajustar y evaluar su modelo, debe codificar los datos categóricos y convertir todas las variables de entrada y salida en numéricas. De este modo, el modelo podrá comprender y extraer la información generando la salida deseada. Los datos categóricos varían en función del número de valores posibles.

La mayoría de las variables categóricas son nominales. Estas variables ayudan a categorizar y etiquetar los atributos. Las variables contienen diferentes valores, y cada valor representa una categoría distinta. Por ejemplo, el color es una variable, e incluye diferentes valores como azul, verde, amarillo. Del mismo modo, una mascota es una variable, pero los gatos y los perros son valores separados que representan categorías diferentes. En otro ejemplo, un lugar es una variable, pero el primero, el segundo y el tercero son los valores. Estas categorías pueden tener o no una relación natural entre sí. En el ejemplo anterior de un lugar, puede ver que el lugar es una variable y sus categorías están en el orden natural. Puede referirse a este tipo de variables como una variable ordinal.

Convertir datos de etiquetas en numéricos

Hay dos pasos para convertir los datos de etiqueta o categóricos en datos numéricos:

1. Codificación de números enteros

En este primer paso, asignará el valor entero para cada valor de categoría. Por ejemplo, el azul es 1, el verde es 2 y el amarillo es 3. Puede invertir fácilmente este tipo de codificación. También puede referirse a la codificación de enteros como codificación de etiquetas. Para muchas variables, este paso es suficiente para procesar el modelo. Existe una relación natural ordenada entre los diferentes valores enteros. Se puede conectar la relación a través de un algoritmo de aprendizaje automático. Por ejemplo, si considera las variables ordinales como el lugar, las categorías ya están ordenadas. Por lo tanto, no es necesario encontrar la relación entre las variables. Así, la codificación de etiquetas sería suficiente.

2. Codificación unidireccional

Las variables categóricas no incluyen ninguna relación entre las variables como las variables ordinales. Por lo tanto, es necesario llevar el proceso de codificación a otro nivel. Para este tipo de datos, la codificación de números enteros no es suficiente. Incluso si se codifican los datos sin un orden natural, las categorías no se alinearán. Debido al bajo rendimiento, el resultado será inesperado.

En consecuencia, la codificación de un solo paso es una técnica que se aplica a la representación de números enteros. Durante la codificación de los datos, el modelo eliminará las variables enteras. Luego, incluirá una nueva variable binaria para cada valor entero único. Por ejemplo, si consideramos la variable de color, necesitará codificar 3 categorías. Para ello, colocará el valor “1” para la variable binaria de color y “0” para la otra.

Cómo codificar una codificación en caliente

Puedes entender el proceso de codificación con el siguiente ejemplo. Para que las tareas sean sencillas y rápidas, debe utilizar bibliotecas. Las bibliotecas son códigos pre-escritos que ayudan a optimizar sus tareas. Sin utilizar las bibliotecas pertinentes, tus tareas se volverán tediosas. Empieza por incluir tres bibliotecas comunes en el proyecto. Estas bibliotecas son sklearn, NumPy y pandas.

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
import NumPy como np
importar pandas como pd

Una vez que te equipas con las herramientas, puedes empezar a codificar. Para entender el concepto, utiliza este conjunto de datos inventado. Utiliza la librería panda para introducir el conjunto de datos. Utilizarás .read_csv y el nombre del archivo para abrirlo.

dataset = pd.read_csv(‘made_up_thing.csv’)

Hasta ahora, has realizado tareas autoexplicativas. Sin embargo, el siguiente paso será un poco más complicado. Cuando consideras una hoja de cálculo como entrada, te importan o no algunas columnas. Para simplificar el proceso, vamos a aceptar todas las columnas excepto la última. Después de considerar las columnas a incluir, añade el .iloc. Es una característica de la biblioteca de pandas. La usarás para elegir los datos de una columna específica.

X = dataset.iloc[:, :-1].values

Después de seleccionar el segmento, en el código anterior, incluiremos los valores utilizando la función .values. Puedes entenderlo como que la primera parte de este código seleccionará los valores, y la segunda parte considerará los valores de esta sección.

En este ejemplo, se incluye un codificador de etiquetas junto con un codificador en caliente. Como un codificador en caliente convierte los números en binario, y usted incluye la categoría como los datos, tiene que convertir primero las categorías en números. Por lo tanto, utilizaremos un codificador de etiquetas antes de un codificador en caliente. Ahora configure el labelencoder utilizando el siguiente código:

le = LabelEncoder()

Después de convertir las categorías en números, utilice la función .fit_transform de sklearn. Como sklearn es una biblioteca de codificación en caliente, convertirá esos números en binarios para que el modelo pueda entenderlos. Utilice el siguiente código para codificar las primeras columnas:

X[:, 0] = le.fit_transform(X[:, 0])

Ahora debes incluir un codificador de código para completar la codificación.

ohe = OneHotEncoder(categorical_features = [0])
X = ohe.fit_transform(X).toarray()

Categorical_features es una función para especificar la columna a codificar con one-hot encoding. Como estamos codificando la primera columna, incluimos [0]. Ahora la función fit_transform convertirá las variables seleccionadas en binarias.

Hemos terminado con la conversión. Tenga en cuenta que incluimos el 0 para la primera columna. Si quieres incluir más columnas, debes añadir el número de columna. Para añadir más de una columna, debes añadir un “bucle for” como el siguiente:

le = LabelEncoder()#para 10 columnas
para i en el rango(10):
X[:,i] = le.fit_transform(X[:,i])

Conclusión

En resumen, la codificación categórica es una técnica que convierte los datos categóricos en binarios. Como el modelo de aprendizaje automático no puede procesar datos categóricos, debe convertirlos en numéricos o binarios, según el algoritmo. Hay dos pasos para convertir los datos categóricos o de etiquetas en datos binarios. La codificación de etiquetas es la primera técnica de codificación categórica. Transforma los datos en forma numérica. Utilice la codificación de etiquetas para los datos ordinales. Para los datos no ordinales, utilice la técnica de codificación de una sola vez. Es un método eficaz para convertir los datos en forma binaria.