Я хочу использовать OneHotEncoder в одном столбце категорий - PullRequest
1 голос
/ 16 апреля 2020

Здесь форма df имеет вид (190,2), где 1-й столбец равен x и является категориальным значением, а @-й столбец является целым числом.

X = df.iloc[:,0].values
y = df.iloc[:,-1].values

# Encoding categorical data

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder = LabelEncoder()
X = labelencoder.fit_transform(X)
X.reshape(-1,1)
onehotencoder = OneHotEncoder(categories = [0])
X = onehotencoder.fit_transform(X).toarray()

Здесь я хотел изменить категориальное значение X с помощью OneHotEncoder предсказать у. Но когда я запускаю этот код, я получаю сообщение об ошибке.

ValueError: bad input shape ()

Может кто-нибудь помочь мне решить эту проблему. Спасибо

1 Ответ

1 голос
/ 16 апреля 2020

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

onehotencoder = OneHotEncoder()
X_oh = onehotencoder.fit_transform(X).toarray()

В случае наличия массива 1D, как это обычно бывает в y, вам необходимо изменить форму массива в a 2D one:

onehotencoder = OneHotEncoder()
X_oh = onehotencoder.fit_transform(X.reshape(-1,1)).toarray()

Обратите внимание, что следующее:

X.reshape(-1,1)

Ничего не предпринимает. Он не выполняет операцию на месте. Вы должны присвоить его обратно переменной.

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