 Codificação de Características Categóricas
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
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!