我有一个包含156000行和37列的大型数据集。列表示保险属性。我们可以将属性划分为三种类型:数字,分类和字母数字。此属性是神经网络的输入值,但NNT仅接受数字数据。我必须编码分类和字母数字值。对于包含一些不同值的分类属性,我使用一个热方法:一个列用于类别,如果行包含该列的类别,则每个单元格中包含1或0。
相反,对于包含许多不同值的类别属性,为了不过多地增加列数,请使用以下命令:
df["ATT1"] = df["ATT1"].astype('category')
df["ATT2"] = df["ATT2"].astype('category')
df["ATT1"] = df["ATT1"].cat.codes
df["ATT2"] = df["ATT2"].cat.codes
将对象属性转换为类别属性,对于每个类别,我将一个整数值关联。 当我通过TensorFlow启动模型时,每次迭代时函数损失保持为0,精度保持恒定为1.
我认为这是因为我对分类属性进行编码是错误的。该模型以正确的方式构建,当我将其与另一个数据库一起打开时,损失函数,精度和输出都得到纠正。分类数据的编码方法包含许多不同的值吗?