Codificació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']])
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']])
Aunque la codificación one-hot evita imponer un orden y es adecuada para características nominales, puede aumentar la dimensionalidad de los datos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain the difference between ordinal and one-hot encoding in more detail?
When should I use ordinal encoding versus one-hot encoding?
Can you give more examples of categorical features and how to encode them?
Awesome!
Completion rate improved to 2.94
Codificació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']])
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']])
Aunque la codificación one-hot evita imponer un orden y es adecuada para características nominales, puede aumentar la dimensionalidad de los datos.
¡Gracias por tus comentarios!