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