Como realizar a codificação de rótulos em r (com exemplos)
Freqüentemente, no aprendizado de máquina, queremos converter variáveis categóricas em algum tipo de formato numérico que possa ser facilmente usado por algoritmos.
Uma maneira de fazer isso é usar a codificação de rótulo , que atribui a cada valor categórico um valor inteiro baseado em ordem alfabética.
Por exemplo, a captura de tela a seguir mostra como converter cada valor exclusivo de uma variável categórica chamada Equipe em um valor inteiro baseado em ordem alfabética:
Existem duas maneiras comuns de realizar a codificação de rótulos em R:
Método 1: Use Base R
df$my_var <- as. numeric (factor(df$my_var))
Método 2: use o pacote CatEncoders
library (CatEncoders) #define original categorical labels labs = LabelEncoder. fit (df$my_var) #convert labels to numeric values df$team = transform(labs, df$my_var)
Os exemplos a seguir mostram como usar cada método na prática.
Exemplo 1: Codificando rótulos usando Base R
O código a seguir mostra como usar a função R base factor() para converter uma variável categórica chamada equipe em uma variável numérica:
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'), points=c(25, 12, 15, 14, 19, 23, 25, 29)) #view data frame df team points 1 to 25 2 to 12 3 B 15 4 B 14 5 B 19 6 B 23 7 C 25 8 C 29 #perform label encoding on team variable df$team <- as. numeric (factor(df$team)) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
Observe os novos valores na coluna equipe :
- “A” tornou-se 1 .
- “B” tornou-se 2 .
- “C” tornou-se 3 .
Convertemos com sucesso a coluna da equipe de uma variável categórica em uma variável numérica.
Exemplo 2: Codificando rótulos usando o pacote CatEncoders
O código a seguir mostra como usar funções no pacote CatEncoders() para converter uma variável categórica chamada equipe em uma variável numérica:
library (CatEncoders) #create data frame df <- data. frame (team=c('A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'), points=c(25, 12, 15, 14, 19, 23, 25, 29)) #define original categorical labels labs = LabelEncoder. fit (df$team) #convert labels to numeric values df$team = transform(labs, df$team) #view updated data frame df team points 1 1 25 2 1 12 3 2 15 4 2 14 5 2 19 6 2 23 7 3 25 8 3 29
Novamente, geramos os seguintes novos valores na coluna da equipe :
- “A” tornou-se 1 .
- “B” tornou-se 2 .
- “C” tornou-se 3 .
Isso corresponde aos resultados do exemplo anterior.
Observe que usando este método você também pode usar inverse.transform() para obter os valores originais da coluna da equipe :
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:
Como criar uma variável categórica de continue em R
Como criar variáveis categóricas em R
Como converter variáveis categóricas em numéricas em R