Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich in Scikit-Learn eine Beschriftungskodierung über mehrere Spalten hinweg durch?

Wie führe ich in Scikit-Learn eine Beschriftungskodierung über mehrere Spalten hinweg durch?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-11 02:53:02998Durchsuche

How to Perform Label Encoding Across Multiple Columns in Scikit-Learn?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn