Beschriftungskodierung über mehrere Spalten hinweg in Scikit-Learn
Der Umgang mit mehreren Spalten kategorialer Daten in einem DataFrame kann mühsam und mühsam sein Es ist ineffizient, für jede Spalte einzelne LabelEncoder-Objekte zu erstellen. Dieses Problem tritt häufig auf, wenn mit Datensätzen gearbeitet wird, die zahlreiche Spalten stringbasierter kategorialer Daten enthalten.
Problembeschreibung:
Versuche, ein einzelnes LabelEncoder-Objekt auf einen gesamten DataFrame anzuwenden Dies führt zu einem Fehler, wie im bereitgestellten Codeausschnitt gezeigt. Die Fehlermeldung „schlechte Eingabeform (6, 3)“ weist darauf hin, dass LabelEncoder ein 1D-Array von Werten erwartet, keinen DataFrame mit mehreren Spalten.
Lösung:
Um dieses Problem zu lösen, wird empfohlen, die apply()-Methode von Pandas zu nutzen. Diese elegante Lösung beinhaltet die Anwendung der fit_transform()-Methode von LabelEncoder auf jede Spalte innerhalb des DataFrame. So geht's:
df.apply(LabelEncoder().fit_transform)
Dieser Ansatz durchläuft jede Spalte, wendet die LabelEncoder-Transformation an und gibt einen neuen DataFrame mit den codierten Werten zurück.
Zusätzliche Überlegungen:
Empfohlene Alternative:
In Scikit-Learn-Versionen 0.20 und höher: Der OneHotEncoder wird als effizientere Alternative zum LabelEncoder für String-Daten empfohlen. Es unterstützt direkt die One-Hot-Kodierung, die oft die bevorzugte Darstellung für kategoriale Daten in Modellen für maschinelles Lernen ist.
OneHotEncoder().fit_transform(df)
Durch die Nutzung dieser Techniken können Praktiker die Etikettenkodierung für mehrere Spalten stringbasierter kategorialer Daten effizient durchführen Daten, was die Vorbereitung von Datensätzen für die maschinelle Lernanalyse erleichtert.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Spalten in einem Pandas-DataFrame effizient beschriften und kodieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!