2 つのカテゴリ変数、ID 変数、およびターゲット変数 (分類用) を持つ Pandas Dataframe があります。でカテゴリ値を変換することができましたOneHotEncoder
。これにより、スパース マトリックスが生成されます。
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']])
しかし、DecisionTreeClassifier でこの疎行列を使用する方法がわかりません。特に、後でデータフレームに他の非カテゴリ変数を追加したい場合。ありがとう!
編集 miraculixx のコメントへの返信: sklearn-pandas で DataFrameMapper も試しました
mapper = DataFrameMapper([
('id_col', None),
('target_col', None),
(['col_a'], OneHotEncoder()),
(['col_b'], OneHotEncoder())
])
t = mapper.fit_transform(df)
しかし、その後、次のエラーが発生します。
TypeError: サポートされていない型の変換: (dtype('O'), dtype('int64'), dtype('float64'), dtype('float64'))。