ingeniería de características

Variables categóricas

Hasta ahora hemos trabajado con números.

Pero muchos datos reales son categorías.

Variables categóricas

Hasta ahora hemos trabajado con números.

Pero muchos datos reales son categorías:

  • tipo de vivienda
  • ciudad
  • nivel educativo
  • producto

Problema clave

Los modelos no entienden texto.

Problema clave

Los modelos no entienden texto.

Necesitamos transformar categorías en números.

Codificación de etiquetas

Una forma simple:

Asignar un número a cada categoría.

Codificación de etiquetas

Ejemplo:

A → 0
B → 1
C → 2
D → 3

Código: codificación de etiquetas

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
df["cat_codificada"] = le.fit_transform(df["cat"])

Problema de esta codificación

A → 0

B → 1

C → 2

Problema de esta codificación

El modelo puede pensar:

C > B > A

Problema de esta codificación

Pero eso no tiene sentido en categorías nominales.

Codificación One-Hot

Otra idea:

Crear una columna por categoría.

Codificación One-Hot

Ejemplo:

A → (1,0,0,0)

B → (0,1,0,0)

C → (0,0,1,0)

D → (0,0,0,1)

Código: One-Hot Encoding

ohe = pd.get_dummies(df["cat"], prefix="cat")

df = pd.concat([df, ohe], axis=1)
df.drop("cat", axis=1, inplace=True)

Comparación

Label encoding

  • Simple
  • Usa una sola columna

Comparación

Label encoding

  • Puede introducir orden falso

One-hot encoding

  • No introduce orden

  • Pero aumenta dimensiones

Caso especial

Variables binarias

Caso especial

Sí / No

True / False

Caso especial

Aquí sí tiene sentido:

le = LabelEncoder()
df["binaria"] = le.fit_transform(df["binaria"])

Ojo con esto

No existe una única forma correcta.

Ojo con esto

La elección depende de:

  • el modelo

  • el número de categorías

  • el contexto del problema

Métodos más avanzados

  • codificación ordinal

  • codificación basada en frecuencia

  • codificación con la variable objetivo

Métodos más avanzados

Ejemplo importante:

Target encoding

Idea clave

La ingeniería de características no es mecánica.

Idea clave

Es una mezcla de:

  • intuición

  • experiencia

  • experimentación