[PYTHON] Encodage partiel à chaud

J'ai le DF suivant et je souhaite effectuer un encodage One-Hot uniquement pour la colonne Country.

Country     |    Age       
--------------------------
Germany     |    23
Spain       |    25
Germany     |    24
Italy       |    30 

Jusqu'à la version 0.20 de scikitlearn, tout ce que vous aviez à faire était de spécifier l'index de la colonne que vous voulez faire l'encodage One-Hot dans categorical_features. En d'autres termes, cela ressemble à ceci.

from sklearn.preprocessing import OneHotEncoder

onehotencoder = OneHotEncoder(categorical_features=[0])
X = onehotencoder.fit_transform(X)

À partir de la version 0.23 de scikitlearn, ColumnTransformer est utilisé pour ces modèles qui sont traités différemment pour chaque colonne. N'oubliez pas de spécifier restder =" passthrough " pour quitter les colonnes qui ne sont pas couvertes.

from sklearn.compose import ColumnTransformer 
from sklearn.preprocessing import OneHotEncoder

column_trans = ColumnTransformer(transformers=[('categorical', OneHotEncoder(), [0])],
                                 remainder="passthrough")
X = column_trans.fit_transform(X)

référence

Recommended Posts

Encodage partiel à chaud
Méthode d'encodage à chaud "utilisable" pour l'apprentissage automatique
Encodage Python