Как sklearn узнает, какие столбцы закодированы в One-Hot? - PullRequest
0 голосов
/ 25 октября 2019

У меня есть набор данных, в котором есть столбцы типа объекта, а другие типа int или float. Я понимаю, что мне нужно преобразовать столбцы объекта в фиктивные переменные, но у меня также есть некоторые столбцы типа int и float, которые представляют двоичные данные (уже 0 и 1). Будет ли sklearn интерпретировать эти столбцы как категоричные или нет? Я не хочу, чтобы они рассматривались как непрерывные переменные.

1 Ответ

0 голосов
/ 25 октября 2019

OneHotEncoder не обрабатывает, какие столбцы имеют категориальный тип. Следовательно, все столбцы, которые передаются в OneHotEncoder, будут преобразованы в фиктивные переменные.

Вы можете обратиться к примерам здесь .

Если у вас уже есть двоичные переменные, и тогда нет смысла создавать для них две фиктивные переменные.

Вы можете использовать make_column_transformer, чтобы указать столбцы, для которых вам нужно одно горячее кодирование.

Пример:

>>> import pandas as pd
>>> X = pd.DataFrame([['Male', 0], ['Female', 1], ['Female', 0]], columns=['gender', 'groups'])
>>> from sklearn.compose import make_column_transformer
>>> ct = make_column_transformer((OneHotEncoder(),[0])) #, remainder='passthrough'
>>> ct.fit_transform(X)
array([[0., 1.],
       [1., 0.],
       [1., 0.]])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...