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

Einen Kommentar hinzufügen

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