Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Codificación de Características Categóricas | Conceptos Fundamentales
Análisis de Conglomerados

bookCodificación de Características Categóricas

Los algoritmos de clustering como K-means requieren datos numéricos. Las características categóricas deben convertirse a formato numérico mediante codificación. Aprenderá sobre la codificación ordinal y la codificación one-hot.

Codificación Ordinal

La codificación ordinal convierte categorías ordenadas en valores numéricos, preservando su rango. Por ejemplo, la codificación ordinal de la columna 'education_level' transformará sus valores de "High School", "Bachelor's", "Master's", 'PhD' a 0, 1, 2, 3.

Esto asume una diferencia numérica significativa entre los valores codificados, lo cual puede no ser siempre preciso.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 
Note
Nota

Esta codificación solo debe utilizarse para características ordinales donde el orden de las categorías sea relevante.

Codificación One-Hot

La codificación one-hot convierte categorías nominales (sin orden) en columnas binarias, donde cada categoría se transforma en una nueva columna. Para una característica con n categorías, normalmente se crean n columnas: una columna es 1 para la categoría correspondiente y las demás son 0. Sin embargo, solo se necesitan realmente n-1 columnas para representar la información sin redundancia.

Por ejemplo, una columna 'color' con valores 'red', 'blue' y 'green' puede codificarse con solo dos columnas: 'color_red' y 'color_blue'. Si una fila tiene 0 en ambas, implica que el color es 'green'. Al eliminar una columna, se evita la redundancia.

La eliminación de la columna redundante se especifica mediante drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
Note
Nota

Aunque la codificación one-hot evita imponer un orden y es adecuada para características nominales, puede aumentar la dimensionalidad de los datos.

question mark

¿Qué método de codificación es más adecuado para una característica categórica como 'country' con valores como "USA", "Canada" y "Germany", donde no existe un orden natural?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 2.94

bookCodificación de Características Categóricas

Desliza para mostrar el menú

Los algoritmos de clustering como K-means requieren datos numéricos. Las características categóricas deben convertirse a formato numérico mediante codificación. Aprenderá sobre la codificación ordinal y la codificación one-hot.

Codificación Ordinal

La codificación ordinal convierte categorías ordenadas en valores numéricos, preservando su rango. Por ejemplo, la codificación ordinal de la columna 'education_level' transformará sus valores de "High School", "Bachelor's", "Master's", 'PhD' a 0, 1, 2, 3.

Esto asume una diferencia numérica significativa entre los valores codificados, lo cual puede no ser siempre preciso.

from sklearn.preprocessing import OrdinalEncoder

education_levels = [['High School',
                     "Bachelor's",
                     "Master's",
                     "PhD"]]
encoder = OrdinalEncoder(categories=education_levels)

df[['education_encoded']] = encoder.fit_transform(df[['education_level']]) 
Note
Nota

Esta codificación solo debe utilizarse para características ordinales donde el orden de las categorías sea relevante.

Codificación One-Hot

La codificación one-hot convierte categorías nominales (sin orden) en columnas binarias, donde cada categoría se transforma en una nueva columna. Para una característica con n categorías, normalmente se crean n columnas: una columna es 1 para la categoría correspondiente y las demás son 0. Sin embargo, solo se necesitan realmente n-1 columnas para representar la información sin redundancia.

Por ejemplo, una columna 'color' con valores 'red', 'blue' y 'green' puede codificarse con solo dos columnas: 'color_red' y 'color_blue'. Si una fila tiene 0 en ambas, implica que el color es 'green'. Al eliminar una columna, se evita la redundancia.

La eliminación de la columna redundante se especifica mediante drop='first':

from sklearn.preprocessing import OneHotEncoder 

encoder = OneHotEncoder(drop='first', sparse=False) 

encoded = encoder.fit_transform(df[['color']]) 
Note
Nota

Aunque la codificación one-hot evita imponer un orden y es adecuada para características nominales, puede aumentar la dimensionalidad de los datos.

question mark

¿Qué método de codificación es más adecuado para una característica categórica como 'country' con valores como "USA", "Canada" y "Germany", donde no existe un orden natural?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 2
some-alt