So führen sie die etikettenkodierung in python durch (mit beispiel)
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:
Sie können die folgende Syntax verwenden, um die Etikettencodierung in Python durchzuführen:
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' my_column '] = lab. fit_transform (df[' my_column '])
Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.
Beispiel: Codierung von Labels in Python
Angenommen, wir haben den folgenden Pandas-DataFrame:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'],
' points ': [25, 12, 15, 14, 19, 23, 25, 29]})
#view DataFrame
print (df)
team points
0 to 25
1 to 12
2 B 15
3 B 14
4 B 19
5 B 23
6 C 25
7 C 29
Wir können den folgenden Code verwenden, um eine Etikettencodierung durchzuführen und jeden kategorialen Wert in der Teamspalte in einen ganzzahligen Wert umzuwandeln:
from sklearn. preprocessing import LabelEncoder #create instance of label encoder lab = LabelEncoder() #perform label encoding on 'team' column df[' team '] = lab. fit_transform (df[' team ']) #view updated DataFrame print (df) team points 0 0 25 1 0 12 2 1 15 3 1 14 4 1 19 5 1 23 6 2 25 7 2 29
Aus dem Ergebnis können wir sehen:
- Jeder „A“-Wert wurde in 0 umgewandelt.
- Jeder „B“-Wert wurde in 1 umgewandelt.
- Jeder „C“-Wert wurde in 2 umgewandelt.
Beachten Sie, dass Sie auch die Funktion inverse_transform() verwenden können, um die Originalwerte der Teamspalte abzurufen:
#display original team labels lab. inverse_transform (df[' team ']) array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)
Zusätzliche Ressourcen
Die folgenden Tutorials erklären, wie Sie andere häufige Aufgaben in Python ausführen:
So konvertieren Sie eine kategoriale Variable in Pandas in eine numerische Variable
So konvertieren Sie boolesche Werte in Pandas in ganzzahlige Werte
So verwenden Sie Factorize(), um Zeichenfolgen in Pandas als Zahlen zu kodieren