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