作为我写的标题,我陷入了我的神经网络做出不同预测值的问题。
这是我使用神经网络进行预测的步骤。
首先,对x进行归一化,并使用'nnet'建立神经网络模型。
之后,我使用predict命令进行了预测。预测(nnet模型,测试数据)
但是问题是,每当我运行神经网络时,我都会得到不同的预测。
例如
mymodel <-nnet(~~~~)
预测(mymodel.test数据)
我从预测中得到了值A。
之后,我再次执行了相同的命令“ mymodel <-nnet(~~~~)预测(mymodel.test数据)”,那么很自然地得到A作为预测值。但是这一次,我得了B。
如果我再次运行它,我会得到C。
为什么我从同一个神经网络模型中得到不同的预测?
我应该怎么解决这个问题?
答案 0 :(得分:2)
原因是因为您在进行另一次预测之前正在重新训练模型。默认情况下,训练神经网络模型涉及在初始化时为每个神经元值设置一些随机值。因此,每次训练都会在某种程度上产生不同的模型。
为避免这种情况,请使用相同的模型实例(仅在开始时执行一次mymodel<-nnet(~~~~)
,之后再继续执行predict()
),或设置种子以生成随机值,以便您始终得到相同的随机值集
答案 1 :(得分:0)
即使数据和模型相同,您仍获得不同结果的原因是,每次您要求进行预测时,您都要求程序初始化模型所需的所有内容(即权重)。如果每次都希望获得相同的结果,则需要保持相同的权重值,而不必每次都重新初始化它们,则可以将其放入数据库中以备后用