Labelcodering uitvoeren in r (met voorbeelden)


Vaak willen we bij machinaal lerencategorische variabelen omzetten in een soort numeriek formaat dat gemakkelijk door algoritmen kan worden gebruikt.

Eén manier om dit te doen is door label encoding te gebruiken, waarbij aan elke categorische waarde een geheel getal wordt toegewezen op basis van alfabetische volgorde.

De volgende schermafbeelding laat bijvoorbeeld zien hoe u elke unieke waarde van een categorische variabele met de naam Team kunt converteren naar een geheel getal op basis van alfabetische volgorde:

Er zijn twee veelgebruikte manieren om labelcodering in R uit te voeren:

Methode 1: Gebruik Base R

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

Methode 2: Gebruik het CatEncoders-pakket

 library (CatEncoders)

#define original categorical labels
labs = LabelEncoder. fit (df$my_var)

#convert labels to numeric values
df$team = transform(labs, df$my_var)

De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken.

Voorbeeld 1: Labels coderen met Base R

De volgende code laat zien hoe u de functie R base factor() gebruikt om een categorische variabele met de naam team om te zetten in een numerieke variabele:

 #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

Let op de nieuwe waarden in de teamkolom :

  • “A” werd 1 .
  • “B” werd 2 .
  • “C” werd 3 .

We hebben de teamkolom met succes geconverteerd van een categorische variabele naar een numerieke variabele.

Voorbeeld 2: Labels coderen met het CatEncoders-pakket

De volgende code laat zien hoe u functies in het CatEncoders()- pakket kunt gebruiken om een categorische variabele genaamd team naar een numerieke variabele te converteren:

 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

Opnieuw hebben we de volgende nieuwe waarden gegenereerd in de teamkolom :

  • “A” werd 1 .
  • “B” werd 2 .
  • “C” werd 3 .

Dit komt overeen met de resultaten van het vorige voorbeeld.

Merk op dat u met deze methode ook inverse.transform() kunt gebruiken om de originele waarden van de teamkolom te verkrijgen:

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

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

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe u een categorische variabele maakt, gaat verder in R
Hoe categorische variabelen te creëren in R
Hoe categorische variabelen naar numeriek te converteren in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert