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
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!