Labelcodering uitvoeren in python (met voorbeeld)
Vaak willen we bij machinaal lerencategorische variabelen omzetten in een soort numeriek formaat dat gemakkelijk door algoritmen kan worden gebruikt.
Eén manier om dit te doen is door label encoding te gebruiken, waarbij aan elke categorische waarde een geheel getal wordt toegewezen op basis van alfabetische volgorde.
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 uit te voeren in Python:
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 '])
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: labels coderen in Python
Stel dat we de volgende panda’s DataFrame hebben:
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
We kunnen de volgende code gebruiken om labelcodering uit te voeren om elke categorische waarde in de teamkolom om te zetten in een geheel getal:
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
Uit het resultaat kunnen we zien:
- Elke “A”-waarde is omgezet naar 0 .
- Elke “B”-waarde is omgezet naar 1 .
- Elke “C”-waarde werd omgezet naar 2 .
Merk op dat u ook de functie inverse_transform() kunt gebruiken om de originele waarden van de teamkolom te verkrijgen:
#display original team labels lab. inverse_transform (df[' team ']) array(['A', 'A', 'B', 'B', 'B', 'B', 'C', 'C'], dtype=object)
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