Scikit-learn: gebruik labelcodering met meerdere kolommen
Bij machinaal leren is labelcodering het proces waarbij de waarden van eencategorische variabele worden omgezet in gehele waarden.
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:
U kunt de volgende syntaxis gebruiken om labelcodering met meerdere kolommen uit te voeren in Python:
from sklearn. preprocessing import LabelEncoder #perform label encoding on col1, col2 columns df[[' col1 ', ' col2 ']] = df[[' col1 ', ' col2 ']]. apply (LabelEncoder(). fit_transform )
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: labels coderen in Python
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over verschillende basketbalspelers:
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
We kunnen de volgende code gebruiken om labelcodering uit te voeren om elke categorische waarde in de kolommen team , position en all_star om te zetten in gehele waarden:
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
Uit het resultaat kunnen we zien dat elke waarde van de kolommen team , position en all_star is geconverteerd naar gehele waarden.
In de teamkolom kunnen we bijvoorbeeld het volgende zien:
- Elke “A”-waarde is omgezet naar 0 .
- Elke “B”-waarde is omgezet naar 1 .
- Elke “C”-waarde werd omgezet naar 2 .
- Elke “D”-waarde werd omgezet naar 3 .
Houd er rekening mee dat we in dit voorbeeld labelcodering hebben uitgevoerd op drie kolommen van het DataFrame, maar we kunnen een vergelijkbare syntaxis gebruiken om labelcodering uit te voeren op zoveel categorische kolommen als we willen.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in Python kunt uitvoeren:
Hoe een categorische variabele naar numeriek te converteren in Pandas
Hoe Booleaanse waarden naar gehele waarden in Panda’s te converteren
Hoe factorize() te gebruiken om strings als getallen in Pandas te coderen