Come eseguire la codifica delle etichette in r (con esempi)


Spesso nell’apprendimento automatico vogliamo convertire le variabili categoriali in un tipo di formato numerico che possa essere facilmente utilizzato dagli algoritmi.

Un modo per farlo è utilizzare la codifica delle etichette , che assegna a ciascun valore categoriale un valore intero in base all’ordine alfabetico.

Ad esempio, la schermata seguente mostra come convertire ciascun valore univoco di una variabile categoriale denominata Team in un valore intero in base all’ordine alfabetico:

Esistono due modi comuni per eseguire la codifica delle etichette in R:

Metodo 1: utilizzare Base R

 df$my_var <- as. numeric (factor(df$my_var))

Metodo 2: utilizzare il pacchetto 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)

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: codifica di etichette utilizzando Base R

Il codice seguente mostra come utilizzare la funzione R base factor() per convertire una variabile categoriale denominata team in una variabile numerica:

 #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

Nota i nuovi valori nella colonna squadra :

  • “A” è diventato 1 .
  • “B” è diventato 2 .
  • “C” è diventato 3 .

Abbiamo convertito con successo la colonna del team da una variabile categoriale a una variabile numerica.

Esempio 2: codifica di etichette utilizzando il pacchetto CatEncoders

Il codice seguente mostra come utilizzare le funzioni nel pacchetto CatEncoders() per convertire una variabile categoriale denominata team in una variabile numerica:

 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

Ancora una volta, abbiamo generato i seguenti nuovi valori nella colonna team :

  • “A” è diventato 1 .
  • “B” è diventato 2 .
  • “C” è diventato 3 .

Ciò corrisponde ai risultati dell’esempio precedente.

Tieni presente che utilizzando questo metodo puoi anche utilizzare inverse.transform() per ottenere i valori originali della colonna del team :

 #display original team labels
reverse. transform (labs, df$team)

[1] “A” “A” “B” “B” “B” “B” “C” “C”

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni in R:

Come creare una variabile categoriale da continuare in R
Come creare variabili categoriali in R
Come convertire le variabili categoriali in numeriche in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *