Codificação de Características Categóricas
Algoritmos de clusterização como o K-means exigem dados numéricos. Características categóricas devem ser convertidas para formato numérico utilizando codificação. Você aprenderá sobre codificação ordinal e one-hot encoding.
Codificação Ordinal
A codificação ordinal converte categorias ordenadas em valores numéricos, preservando seu rankeamento. Por exemplo, a codificação ordinal da coluna 'education_level' transformará seus valores de "High School", "Bachelor's", "Master's", 'PhD' para 0, 1, 2, 3.
Isso pressupõe uma diferença numérica significativa entre os valores codificados, o que pode não ser sempre 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']])
Essa codificação deve ser utilizada apenas para características ordinais onde a ordem das categorias é relevante.
Codificação One-Hot
A codificação one-hot converte categorias nominais (sem ordem) em colunas binárias, onde cada categoria se torna uma nova coluna. Para uma característica com n categorias, normalmente são criadas n colunas — uma coluna recebe 1 para a categoria correspondente e as demais recebem 0. No entanto, apenas n-1 colunas são realmente necessárias para representar a informação sem redundância.
Por exemplo, uma coluna 'color' com valores 'red', 'blue' e 'green' pode ser codificada com apenas duas colunas: 'color_red' e 'color_blue'. Se uma linha tiver 0 em ambas, isso implica que a cor é 'green'. Ao remover uma coluna, evitamos a redundância.
A remoção da coluna redundante é especificada via drop='first':
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Embora a codificação one-hot evite impor ordem e seja adequada para características nominais, pode aumentar a dimensionalidade dos dados.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Codificação de Características Categóricas
Deslize para mostrar o menu
Algoritmos de clusterização como o K-means exigem dados numéricos. Características categóricas devem ser convertidas para formato numérico utilizando codificação. Você aprenderá sobre codificação ordinal e one-hot encoding.
Codificação Ordinal
A codificação ordinal converte categorias ordenadas em valores numéricos, preservando seu rankeamento. Por exemplo, a codificação ordinal da coluna 'education_level' transformará seus valores de "High School", "Bachelor's", "Master's", 'PhD' para 0, 1, 2, 3.
Isso pressupõe uma diferença numérica significativa entre os valores codificados, o que pode não ser sempre 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']])
Essa codificação deve ser utilizada apenas para características ordinais onde a ordem das categorias é relevante.
Codificação One-Hot
A codificação one-hot converte categorias nominais (sem ordem) em colunas binárias, onde cada categoria se torna uma nova coluna. Para uma característica com n categorias, normalmente são criadas n colunas — uma coluna recebe 1 para a categoria correspondente e as demais recebem 0. No entanto, apenas n-1 colunas são realmente necessárias para representar a informação sem redundância.
Por exemplo, uma coluna 'color' com valores 'red', 'blue' e 'green' pode ser codificada com apenas duas colunas: 'color_red' e 'color_blue'. Se uma linha tiver 0 em ambas, isso implica que a cor é 'green'. Ao remover uma coluna, evitamos a redundância.
A remoção da coluna redundante é especificada via drop='first':
from sklearn.preprocessing import OneHotEncoder
encoder = OneHotEncoder(drop='first', sparse=False)
encoded = encoder.fit_transform(df[['color']])
Embora a codificação one-hot evite impor ordem e seja adequada para características nominais, pode aumentar a dimensionalidade dos dados.
Obrigado pelo seu feedback!