Heim > Artikel > Backend-Entwicklung > Wie führe ich in Scikit-Learn eine Beschriftungskodierung über mehrere Spalten hinweg durch?
Beschriftungskodierung über mehrere Spalten hinweg in Scikit-Learn
Beim Umgang mit Datensätzen, die mehrere Spalten kategorialer Daten enthalten, ist es notwendig, diese zu kodieren Numerische Beschriftungen zur Verwendung in Algorithmen für maschinelles Lernen. Scikit-learn stellt zu diesem Zweck die Klasse LabelEncoder bereit. Die direkte Anwendung auf einen DataFrame mit zahlreichen Spalten (z. B. 50) kann jedoch aufgrund einer falschen Eingabeform zu einem Fehler führen.
Um diese Herausforderung zu meistern, gibt es eine elegante Möglichkeit, die Beschriftungskodierung über alle Spalten hinweg gleichzeitig durchzuführen ist:
df.apply(LabelEncoder().fit_transform)
Als Alternative, insbesondere für Scikit-Learn-Versionen 0.20 und höher, sollten Sie die Verwendung in Betracht ziehen OneHotEncoder:
OneHotEncoder().fit_transform(df)
OneHotEncoder unterstützt nativ String-Eingaben und generiert One-Hot-codierte Vektoren.
Alternativ, wenn Sie die Kontrolle über die LabelEncoder-Instanzen für verschiedene Spalten benötigen oder nur eine Teilmenge codieren müssen von Spalten können Sie ColumnTransformer verwenden:
from sklearn.compose import ColumnTransformer from sklearn.preprocessing import LabelEncoder transformer = ColumnTransformer( transformers=[('labels', LabelEncoder(), ['column1', 'column2'])], ) transformed_data = transformer.fit_transform(df)
Durch die Verwendung Mit ColumnTransformer können Sie die zu codierenden Spalten angeben und separate LabelEncoder-Instanzen verwalten, was eine größere Flexibilität bei Ihrer Datenvorbereitung ermöglicht.
Das obige ist der detaillierte Inhalt vonWie führe ich in Scikit-Learn eine Beschriftungskodierung über mehrere Spalten hinweg durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!