问题描述
我正在使用蘑菇特征数据集来确定蘑菇是否有毒。我建立的模型可以工作,但是我试图使用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)