【问题标题】:Why does my prediction model keep giving a different prediction result every time I run it?为什么我的预测模型每次运行时都会给出不同的预测结果?
【发布时间】:2020-06-19 06:09:43
【问题描述】:

我已经使用 LSTM 建立了一个股票预测模型。但是,每次运行程序时,RMSE的值和预测结果都会不断变化(我没有更改程序中的任何数据。每次单击运行按钮时都会给出不同的结果,)谁能告诉我这是什么原因。非常感谢

【问题讨论】:

标签: python machine-learning keras lstm


【解决方案1】:

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

神经网络如何学习?

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

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

但我的观点是,预测完全取决于这些权重。这些权重值会根据训练期间的学习率和其他一些东西不断变化。最开始呢?在纪元号1?基本上模型会为所有路径生成一些随机权重。然后在训练期间不断改变这些值以最小化损失。

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-05-02
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2018-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      相关资源
      最近更新 更多