ValueError: установка элемента массива с последовательностью при использовании Onehotencoder для нескольких столбцов - PullRequest
0 голосов
/ 24 сентября 2019

Я довольно новичок в машинном обучении и использую следующий код для кодирования моих категориальных данных для предварительной обработки:

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

ct = ColumnTransformer([('one_hot_encoder', OneHotEncoder(handle_unknown = 'ignore'), [0])],remainder='passthrough')
X = np.array(ct.fit_transform(X), dtype=np.float)

, который работает, когда у меня только один категориальный столбец данных в X. Однакокогда у меня есть несколько столбцов категориальных данных, я изменяю свой код на:

ct = ColumnTransformer([('one_hot_encoder', OneHotEncoder(handle_unknown = 'ignore'), [0,1,2,3,4,5,10,14,15])],remainder='passthrough')

, но я получаю следующую ошибку при вызове функции np.array:

Ошибка значения: настройкаэлемент массива с последовательностью

при вызове функции np.array ...

Из того, что я понимаю, все, что мне нужно сделать, это указать, какие столбцы я бываю кодировать какв приведенной выше строке кода ... так почему один работает, а другой выдает ошибку?Что я должен сделать, чтобы это исправить?

Также: если я удаляю dtype=np.float из функции np.array, я не получаю ошибку - но я также не получаювсе, что вернулось в X

1 Ответ

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

Не бери в голову, я смог ответить на свой вопрос.

Для всех, кому было интересно, я поменял строку

X = np.array(ct.fit_transform(X), dtype=np.float)

на:

X = ct.fit_transform(X).toarray()

Код теперь отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...