如何对ANN的X和y值进行OneHotEncode?

问题描述

我正在使用蘑菇特征数据集来确定蘑菇是否有毒。我建立的模型可以工作,但是我试图使用OneHotEncoder作为练习编码的方法。我知道我们必须实例化OneHotENcoder类,并fit_transform数据框。从那里,我们建立X和y值,并像往常一样建立模型。我遇到的麻烦是拟合X和y值。在下面的代码中,变量X出现错误:“找不到下落。”

from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder()

df = ohe.fit_transform(df.iloc[:,:])

ohe.categories_

X = df.drop('class',axis=1)
y = df['class']

X = ohe.fit_transform(X)

y = one.fit_transform(y)

我希望上面的代码对Xs和ys都进行编码,我想用它们来训练测试拆分并构建一个小的ANN。任何帮助将不胜感激。

解决方法

一个热编码器返回一个numpy数组而不是一个数据帧。

您应该首先删除目标列,然后应用一个热编码器。

exempt_cols = set(['class'])
categorical_cols = [col for col in df.columns if col not in exempt_cols]
X = df[categorical_cols]
X = ohe.fit_transform(X)