So führen sie one-hot-codierung in python durch


Mithilfe der One-Hot-Codierung werden kategoriale Variablen in ein Format konvertiert, das von Algorithmen für maschinelles Lernen problemlos verwendet werden kann.

Die Grundidee des One-Hot-Codierens besteht darin, neue Variablen zu erstellen, die die Werte 0 und 1 annehmen, um die ursprünglichen kategorialen Werte darzustellen.

Das folgende Bild zeigt beispielsweise, wie wir eine kategoriale Variable mit Teamnamen per One-Hot-Codierung in neue Variablen konvertieren, die nur die Werte 0 und 1 enthalten:

Das folgende Schritt-für-Schritt-Beispiel zeigt, wie Sie in Python eine One-Hot-Codierung für genau diesen Datensatz durchführen.

Schritt 1: Erstellen Sie die Daten

Erstellen wir zunächst 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

Schritt 2: Führen Sie eine One-Hot-Codierung durch

Als nächstes importieren wir die OneHotEncoder() -Funktion aus der sklearn- Bibliothek und verwenden sie, um eine Hot-Codierung für die Variable „team“ im Pandas-DataFrame durchzuführen:

 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

Beachten Sie, dass dem DataFrame drei neue Spalten hinzugefügt wurden, da die ursprüngliche Spalte „team“ drei eindeutige Werte enthielt.

Hinweis : Die vollständige Dokumentation zur OneHotEncoder() -Funktion finden Sie hier .

Schritt 3: Entfernen Sie die ursprüngliche kategoriale Variable

Schließlich können wir die ursprüngliche Variable „team“ aus dem DataFrame entfernen, da wir sie nicht mehr benötigen:

 #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

Verwandte Themen: So löschen Sie Spalten in Pandas (4 Methoden)

Wir könnten auch die Spalten des endgültigen DataFrame umbenennen, um sie leichter lesbar zu machen:

 #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

Die One-Hot-Codierung ist abgeschlossen und wir können diesen Pandas-DataFrame nun in jeden gewünschten Algorithmus für maschinelles Lernen einfügen.

Zusätzliche Ressourcen

So berechnen Sie einen getrimmten Mittelwert in Python
So führen Sie eine lineare Regression in Python durch
So führen Sie eine logistische Regression in Python durch

Einen Kommentar hinzufügen

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