One-hot-codering uitvoeren in python


One-hot-codering wordt gebruikt om categorische variabelen om te zetten in een indeling die gemakkelijk kan worden gebruikt door machine learning-algoritmen .

Het basisidee van one-hot coding is het creëren van nieuwe variabelen die de waarden 0 en 1 aannemen om de oorspronkelijke categorische waarden weer te geven.

De volgende afbeelding laat bijvoorbeeld zien hoe we one-hot-encoderen om een categorische variabele met teamnamen te converteren naar nieuwe variabelen die alleen 0- en 1-waarden bevatten:

In het volgende stapsgewijze voorbeeld ziet u hoe u one-hot-codering kunt uitvoeren voor deze exacte gegevensset in Python.

Stap 1: Creëer de gegevens

Laten we eerst de volgende panda’s DataFrame maken:

 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

Stap 2: Voer one-hot-codering uit

Laten we vervolgens de functie OneHotEncoder() importeren uit de sklearn- bibliotheek en deze gebruiken om hot-encoding uit te voeren op de ‚team‘-variabele in het pandas DataFrame:

 from sklearn. preprocessing import OneHotEncoder

#creating instance of one-hot-encoder
encoder = OneHotEncoder(handle_unknown=' ignore ')

#perform one-hot encoding on 'team' column 
encoder_df = pd. DataFrame ( encoder.fit_transform (df[[' team ']]). toarray ())

#merge one-hot encoded columns back with original DataFrame
final_df = df. join (encoder_df)

#view final df
print (final_df)

  team points 0 1 2
0 to 25 1.0 0.0 0.0
1 to 12 1.0 0.0 0.0
2 B 15 0.0 1.0 0.0
3 B 14 0.0 1.0 0.0
4 B 19 0.0 1.0 0.0
5 B 23 0.0 1.0 0.0
6 C 25 0.0 0.0 1.0
7 C 29 0.0 0.0 1.0

Houd er rekening mee dat er drie nieuwe kolommen aan het DataFrame zijn toegevoegd, omdat de oorspronkelijke kolom ‚team‘ drie unieke waarden bevatte.

Opmerking : u kunt de volledige documentatie voor de OneHotEncoder()- functie hier vinden.

Stap 3: Verwijder de oorspronkelijke categorische variabele

Ten slotte kunnen we de originele ‚team‘-variabele uit het DataFrame verwijderen, omdat we deze niet langer nodig hebben:

 #drop 'team' column
final_df. drop (' team ', axis= 1 , inplace= True )

#view final df
print (final_df)

   points 0 1 2
0 25 1.0 0.0 0.0
1 12 1.0 0.0 0.0
2 15 0.0 1.0 0.0
3 14 0.0 1.0 0.0
4 19 0.0 1.0 0.0
5 23 0.0 1.0 0.0
6 25 0.0 0.0 1.0
7 29 0.0 0.0 1.0

Gerelateerd: Kolommen verwijderen in Panda’s (4 methoden)

We kunnen ook de kolommen van het uiteindelijke DataFrame hernoemen om ze gemakkelijker leesbaar te maken:

 #rename columns
final_df. columns = ['points', 'teamA', 'teamB', 'teamC']

#view final df
print (final_df)

   points teamA teamB teamC
0 25 1.0 0.0 0.0
1 12 1.0 0.0 0.0
2 15 0.0 1.0 0.0
3 14 0.0 1.0 0.0
4 19 0.0 1.0 0.0
5 23 0.0 1.0 0.0
6 25 0.0 0.0 1.0
7 29 0.0 0.0 1.0

De one-hot-codering is voltooid en we kunnen dit panda’s DataFrame nu in elk gewenst machine learning-algoritme invoegen.

Aanvullende bronnen

Hoe een getrimd gemiddelde in Python te berekenen
Hoe lineaire regressie uit te voeren in Python
Hoe logistieke regressie uit te voeren in Python

Einen Kommentar hinzufügen

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