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

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *