首页 > 解决方案 > 如何对 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。任何帮助,将不胜感激。

标签: pythonone-hot-encoding

解决方案


一个热编码器返回一个 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)

推荐阅读