So führen sie die etikettenkodierung in r durch (mit beispielen)
Beim maschinellen Lernen möchten wir häufig kategoriale Variablen in ein numerisches Format umwandeln, das von Algorithmen problemlos verwendet werden kann.
Eine Möglichkeit hierfür ist die Verwendung der Etikettenkodierung , die jedem kategorialen Wert basierend auf alphabetischer Reihenfolge einen ganzzahligen Wert zuweist.
Der folgende Screenshot zeigt beispielsweise, wie jeder eindeutige Wert einer kategorialen Variablen namens „ Team“ basierend auf alphabetischer Reihenfolge in einen ganzzahligen Wert konvertiert wird:
Es gibt zwei gängige Methoden zur Etikettencodierung in R:
Methode 1: Verwenden Sie Base R
df$my_var <- as. numeric (factor(df$my_var))
Methode 2: Verwenden Sie das CatEncoders-Paket
library (CatEncoders) #define original categorical labels labs = LabelEncoder. fit (df$my_var) #convert labels to numeric values df$team = transform(labs, df$my_var)
Die folgenden Beispiele zeigen, wie die einzelnen Methoden in der Praxis angewendet werden.
Beispiel 1: Etiketten mit Base R kodieren
Der folgende Code zeigt, wie die R- Basisfaktor() -Funktion verwendet wird, um eine kategoriale Variable namens „ team“ in eine numerische Variable umzuwandeln:
#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
Beachten Sie die neuen Werte in der Teamspalte :
- Aus „A“ wurde 1 .
- Aus „B“ wurde 2 .
- Aus „C“ wurde 3 .
Wir haben die Teamspalte erfolgreich von einer kategorialen Variablen in eine numerische Variable konvertiert.
Beispiel 2: Codieren von Etiketten mit dem CatEncoders-Paket
Der folgende Code zeigt, wie Funktionen im CatEncoders() -Paket verwendet werden, um eine kategoriale Variable namens team in eine numerische Variable zu konvertieren:
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
Auch hier haben wir in der Spalte „Team“ folgende neue Werte generiert:
- Aus „A“ wurde 1 .
- Aus „B“ wurde 2 .
- Aus „C“ wurde 3 .
Dies entspricht den Ergebnissen des vorherigen Beispiels.
Beachten Sie, dass Sie mit dieser Methode auch inverse.transform() verwenden können, um die ursprünglichen Werte der Teamspalte abzurufen:
#display original team labels reverse. transform (labs, df$team) [1] “A” “A” “B” “B” “B” “B” “C” “C”
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in R ausführen:
So erstellen Sie eine kategoriale Variable aus continue in R
So erstellen Sie kategoriale Variablen in R
So konvertieren Sie kategoriale Variablen in numerisch in R