我正在训练一个基于神经网络的分类器,使用神经网络包进行训练,使用nnet进行变量的单热编码。 模型上的所有变量都是分类的。该数据由15个标签和6个独立变量(预测变量)组成,这些变量占64个虚拟变量,因此整个数据帧有79列。 该数据来自每月更新数据的2年记录。 该模型准备就绪,我需要用它来预测1月20日结果。 当我尝试用模型计算新数据时会出现问题,因为一旦它被编码为虚拟变量,它就没有与训练数据相同数量的变量。
例如: 训练数据:想象大小和速度是预测因子,动物是类。 尺寸可以是(大,小) 速度可以是(快速,慢速) 动物可以是(狗,龟)
我的数据是:
Speed Size Animal
Fast Big Dog
Fast Small Dog
Slow Big Turtle
一旦进行单热编码,使用来自nnet包的class.ind函数我得到
Fast Slow Big Small Dog Turtle
1 0 1 0 1 0
1 0 0 1 1 0
0 1 1 0 0 1
当新数据没有任何具有一个因子级别的行时出现问题,比如说新数据只包含速度为“快”的动物,那么一旦伪编码,我只得到5个变量而不是训练数据中的6个变量无法使用神经网络进行计算,因为我得到了
神经元中的错误[[i]]%*%权重[[i]]:不一致的参数
我如何编码新数据,以便它具有所有因子水平?
答案 0 :(得分:-1)