如何解决考虑到我已经用OneHotEncoder预处理了数据,当我在ANN中添加输入层时,输入形状的数字应该是什么?
我的数据集具有分类和数字特征。数据集具有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.add(tf.keras.Input(shape =( ?? ,)))
解决方法
在我的代码中运行了拟合线之后,我意识到输入形状数必须等于数据预处理后获得的列数。否则,将导致错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。