Keras 考虑到我已经用OneHotEncoder对数据进行了预处理,在我的ANN中添加输入层时,输入的形状编号应该是多少?

Keras 考虑到我已经用OneHotEncoder对数据进行了预处理,在我的ANN中添加输入层时,输入的形状编号应该是多少?,keras,scikit-learn,deep-learning,neural-network,tf.keras,Keras,Scikit Learn,Deep Learning,Neural Network,Tf.keras,我的数据集具有分类和数字特征。数据集有7个自变量和1个因变量,称为产品。数据集如下所示: 一般来说,有3个分类变量,其中7个不同类别对应变量p1,2个对应变量p2,2个对应变量p3。从p4到p7,产品都是数字 对于分类变量列0、1和2,有必要使用OneHotEncoder对数据进行预处理 from sklearn.compose import ColumnTransformer from sklearn.preprocessing import OneHotEncoder ct= ColumnT

我的数据集具有分类和数字特征。数据集有7个自变量和1个因变量,称为产品。数据集如下所示:

一般来说,有3个分类变量,其中7个不同类别对应变量p1,2个对应变量p2,2个对应变量p3。从p4到p7,产品都是数字

对于分类变量列0、1和2,有必要使用OneHotEncoder对数据进行预处理

from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct= ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [0,1,2])], remainder = 'passthrough')
X = np.array(ct.fit_transform(X))
根据该编码的结果,列的数量增加了。我们可以在下一张图中看到这种变化

正如我们看到的,每个类别都有自己的代码,列的数量也增加了。现在我在数据集中得到了“15列”11+4

那么,当我在输入层构造ANN时,我应该在输入形状中添加什么值,7或15


ann.addtf.keras.Inputshape=??,

在我的代码中运行拟合行之后,我意识到输入的形状编号必须等于数据预处理后获得的列数。否则,将导致错误。

请重新阅读,因为您在第一次阅读时似乎遗漏了一些关键点,即不要发布代码、数据、错误消息等的图像-将文本复制或键入原文中的问题重点。看看为什么。