Mam Pandas Dataframe z 2 zmiennymi kategorycznymi, zmienną ID i zmienną docelową (dla klasyfikacji). Udało mi się przekonwertować wartości kategoryczne na OneHotEncoder
. Powoduje to rzadką matrycę.Jak używać wyjścia z OneHotEncoder w 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']])
Ale nie mam pojęcia, jak mogę użyć tej rzadkiej macierzy w DecisionTreeClassifier? Szczególnie, gdy chcę dodać inne nie-kategoryczne zmienne w mojej ramce danych później. Dzięki!
EDIT W odpowiedzi na komentarz z miraculixx: Próbowałem też DataFrameMapper w sklearn-pand
mapper = DataFrameMapper([
('id_col', None),
('target_col', None),
(['col_a'], OneHotEncoder()),
(['col_b'], OneHotEncoder())
])
t = mapper.fit_transform(df)
Ale wtedy ten błąd:
TypeError: no supported conversion for types : (dtype('O'), dtype('int64'), dtype('float64'), dtype('float64')).
[sklearn-pandy] (https://github.com/paulgb/sklearn-pandas) jest bardzo pomocny podczas pracy z ramkami danych i sklearn. – miraculixx