Maison >développement back-end >Tutoriel Python >Comment effectuer le codage d'étiquettes sur plusieurs colonnes dans Scikit-Learn ?

Comment effectuer le codage d'étiquettes sur plusieurs colonnes dans Scikit-Learn ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-11 02:53:021068parcourir

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

Encodage d'étiquettes sur plusieurs colonnes dans Scikit-Learn

Lorsque vous traitez des ensembles de données contenant plusieurs colonnes de données catégorielles, il devient nécessaire de les encoder étiquettes numériquement à utiliser dans les algorithmes d’apprentissage automatique. Scikit-learn fournit la classe LabelEncoder à cet effet. Cependant, l'appliquer directement à un DataFrame comportant de nombreuses colonnes (par exemple, 50) peut entraîner une erreur due à une forme d'entrée incorrecte.

Pour surmonter ce défi, une manière élégante d'effectuer un encodage d'étiquettes sur toutes les colonnes simultanément. est :

df.apply(LabelEncoder().fit_transform)

Comme alternative, en particulier pour les versions scikit-learn 0.20 et supérieures, pensez à utiliser OneHotEncoder :

OneHotEncoder().fit_transform(df)

OneHotEncoder prend en charge nativement les entrées de chaîne et génère des vecteurs codés à chaud.

Alternativement, si vous avez besoin de contrôler les instances de LabelEncoder pour différentes colonnes ou si vous avez uniquement besoin d'encoder un sous-ensemble de colonnes, vous pouvez utiliser ColumnTransformer :

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import LabelEncoder

transformer = ColumnTransformer(
    transformers=[('labels', LabelEncoder(), ['column1', 'column2'])],
)

transformed_data = transformer.fit_transform(df)

En utilisant ColumnTransformer, vous pouvez spécifier les colonnes à encoder et conserver des instances LabelEncoder distinctes, permettant une plus grande flexibilité dans la préparation de vos données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn