为什么我的预测模型每次运行都会不断给出不同的预测结果?

时间:2020-06-19 06:09:43

标签: python machine-learning keras lstm

我已经使用LSTM建立了库存预测模型。但是,每次运行程序时,RMSE的值和预测结果都会不断变化(我没有更改程序中的任何数据。每次单击运行按钮时,它都会给出不同的结果,)有人可以让我知道这是什么原因。非常感谢

2 个答案:

答案 0 :(得分:0)

机器学习中有许多随机性来源(在下面的链接中描述)。 https://machinelearningmastery.com/randomness-in-machine-learning/

在这种情况下,即使您确保以相同的顺序应用完全相同的数据,也可能是“算法中的随机性”。

答案 1 :(得分:0)

我建议您更多地了解神经网络的层和其他一些基本知识。

神经网络如何学习?

神经网络包含三种类型的层。输入,输出和隐藏层。所有这些层都包含神经元,或者可以说是节点。每一层的神经元都与其上一层和下一层的神经元相连。看看下面的图片。 enter image description here

您可以将连接称为“路径”。每个路径都有一些权重值。通过将上一层神经元的输出的所有乘积与路径的权重值相加来计算神经元的输入值。然后,通过一些激活函数来处理总和值。您可以通过在线课程或教程来了解更多信息。

但是我的意思是,预测完全取决于这些权重。而且这些权重值会根据学习率和训练过程中的其他一些东西而不断变化。那一开始呢?在时代1个基本上,模型会为所有路径生成一些随机权重。然后在训练过程中不断更改这些值,以最大程度地减少损失。

每次运行火车时,都会生成随机值。因此,您每次都会得到不同的结果。如果使用tf.seed或其他方法固定这些值,则将获得可重复的结果。顺便说一句,您不需要每次都训练。保存模型权重,然后在需要预测时加载它。每次加载模型权重并使用该模型进行预测时,您将获得相同的结果。