Problemübersicht
Klassifizierungsprobleme beim maschinellen Lernen, ein großer Teil von kategorialen Variablen stellt eine Herausforderung dar und erfordert spezielle Kodierungstechniken. Eine solche Technik ist eine Hot-Codierung, die häufig vor der Übergabe von Daten an Klassifikatoren verwendet wird.
Ansatz 1: Verwendung von pd.get_dummies von Pandas
Ein gängiger Ansatz ist die Verwendung von pd. get_dummies von Pandas. Es wandelt kategoriale Spalten in mehrere Dummy-Spalten um, die jeweils eine andere Kategorie darstellen.
Beispiel:
import pandas as pd s = pd.Series(list('abca')) pd.get_dummies(s) Out[]: a b c 0 1.0 0.0 0.0 1 0.0 1.0 0.0 2 0.0 0.0 1.0 3 1.0 0.0 0.0
Alternativ werden durch die Angabe eines Präfixes mehrere Spalten für jeden Dummy erstellt:
df = pd.DataFrame({ 'A':['a','b','a'], 'B':['b','a','c'] }) df Out[]: A B 0 a b 1 b a 2 a c one_hot = pd.get_dummies(df['B'], prefix='B') df = df.drop('B',axis = 1) df = df.join(one_hot) df Out[]: A Ba Bb Bc 0 a 0 1 0 1 b 1 0 0 2 a 0 0 1
Ansatz 2: Beschäftigung Scikit-learn
Der OneHotEncoder von Scikit-learn bietet einen robusten und flexiblen Ansatz für eine Hot-Codierung.
Beispiel:
from sklearn.preprocessing import OneHotEncoder enc = OneHotEncoder() enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]]) enc.transform([[0, 1, 1]]).toarray() array([[ 1., 0., 0., 1., 0., 0., 1., 0., 0.]])
Das bereitgestellte Code-Snippet veranschaulicht die Anpassung und Transformation von Beispieldaten und demonstriert den binären One-Hot Kodierung.
Stellen Sie sicher, dass Sie die für eine Hot-Kodierung erforderlichen Rechenressourcen sorgfältig abwägen, insbesondere bei großen Datensätzen. Effiziente Datenverarbeitung und Merkmalsauswahltechniken sind entscheidend für die Optimierung der Leistung und das Erreichen erfolgreicher Klassifizierungsergebnisse.
Das obige ist der detaillierte Inhalt vonWie geht One Hot Encoding mit kategorialen Variablen in Python um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!