J'ai une base de données Pandas avec 2 variables catégorielles, et une variable ID et une variable cible (pour la classification). J'ai réussi à convertir les valeurs catégorielles avec OneHotEncoder
. Cela résulte en une matrice clairsemée.Comment utiliser la sortie de OneHotEncoder dans sklearn?
ohe = OneHotEncoder()
# First I remapped the string values in the categorical variables to integers as OneHotEncoder needs integers as input
... remapping code ...
ohe.fit(df[['col_a', 'col_b']])
ohe.transform(df[['col_a', 'col_b']])
Mais je n'ai aucune idée comment je peux utiliser cette matrice clairsemée dans un DecisionTreeClassifier? Surtout quand je veux ajouter d'autres variables non catégoriques dans ma base de données plus tard. Merci!
EDIT En réponse au commentaire de miraculixx: J'ai essayé aussi le DataFrameMapper dans sklearn-pandas géants
mapper = DataFrameMapper([
('id_col', None),
('target_col', None),
(['col_a'], OneHotEncoder()),
(['col_b'], OneHotEncoder())
])
t = mapper.fit_transform(df)
Mais je reçois cette erreur:
TypeError: no supported conversion for types : (dtype('O'), dtype('int64'), dtype('float64'), dtype('float64')).
[sklearn-pandas] (https://github.com/paulgb/sklearn-pandas) est vraiment utile lorsque vous travaillez avec des dataframes et sklearn. – miraculixx