Scikit-learn: mehrspaltige etikettencodierung verwenden
Beim maschinellen Lernen ist die Etikettenkodierung der Prozess der Konvertierung der Werte einer kategorialen Variablen in ganzzahlige Werte.
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 Kodierung mehrspaltiger Beschriftungen in Python durchzuführen:
from sklearn. preprocessing import LabelEncoder #perform label encoding on col1, col2 columns df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )
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, der Informationen über verschiedene Basketballspieler enthält:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'D'],
' position ': ['G', 'F', 'G', 'F', 'F', 'G', 'G', 'F'],
' all_star ': ['Y', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'N'],
' points ': [11, 8, 10, 6, 6, 5, 9, 12]})
#view DataFrame
print (df)
team position all_star points
0 AGY 11
1 AFN 8
2 BGY 10
3 BFY 6
4 BFY 6
5 CGN 5
6 CGY 9
7 DFN 12
Wir können den folgenden Code verwenden, um eine Etikettencodierung durchzuführen und jeden kategorialen Wert in den Spalten team , position und all_star in ganzzahlige Werte umzuwandeln:
from sklearn. preprocessing import LabelEncoder #perform label encoding across team, position, and all_star columns df[[' team ', ' position ', ' all_star ']] = df[[' team ', ' position ', ' all_star ']]. apply (LabelEncoder(). fit_transform ) #view udpated DataFrame print (df) team position all_star points 0 0 1 1 11 1 0 0 0 8 2 1 1 1 10 3 1 0 1 6 4 1 0 1 6 5 2 1 0 5 6 2 1 1 9 7 3 0 0 12
Aus dem Ergebnis können wir ersehen, dass jeder Wert der Spalten team , position und all_star in ganzzahlige Werte konvertiert wurde.
In der Teamspalte können wir beispielsweise Folgendes sehen:
- Jeder „A“-Wert wurde in 0 umgewandelt.
- Jeder „B“-Wert wurde in 1 umgewandelt.
- Jeder „C“-Wert wurde in 2 umgewandelt.
- Jeder „D“-Wert wurde in 3 umgewandelt.
Beachten Sie, dass wir in diesem Beispiel die Beschriftungscodierung für drei Spalten des DataFrame durchgeführt haben, wir können jedoch eine ähnliche Syntax verwenden, um die Beschriftungscodierung für beliebig viele kategoriale Spalten durchzuführen.
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