【问题标题】:Prediction and forecasting with Python tensorflow使用 Python tensorflow 进行预测和预测
【发布时间】:2018-07-18 07:18:55
【问题描述】:

我创建了一个预测模型,并在其中使用了 Python 中的 tensorflow 库提供的 RNN。这是我创建并尝试过的完整代码:

Jupyter Notbook of the Code

但我有疑问。
1) RNN 对于我要预测的内容是否正确?

2) 有没有更好的算法我可以尝试?

3) 谁能建议我如何使用 tensorflow 模型提供多个输入并获得必要的输出?谁能指导我。

我希望我的观点很清楚。如果还有其他需要,请告诉我。

【问题讨论】:

  • 您应该在问题中包含代码!或者至少查明您遇到问题的部分。
  • @Eypros 好吧,我想我已经添加了代码。如果您愿意,如果您在打开 jupyter 时遇到问题,我会添加完整的 jupyter notebook。代码有点大并且可以执行。因此,我添加了 jupyter notebook 以便更清楚地理解。

标签: python python-3.x algorithm tensorflow jupyter-notebook


【解决方案1】:

有疑问是正常的,但您应该在寻求建议之前尝试衡量它们。如果您没有明确的东西想要改进,那么您不太可能会得到更好的东西。

1) RNN 对于我要预测的内容是否正确?

是的。 RNN 在这里使用得当。如果您不太关心具有任意长度的输入序列,您还可以尝试将它们强制为固定大小,然后在顶部应用卷积(请参阅卷积神经网络),或者甚至尝试使用更简单的 DNN。

要问自己的更重要的问题是您是否有正确的输入,以及您是否有足够的训练数据来学习您希望学习的内容。

2) 有没有更好的算法我可以尝试?

可能没有。正如我所说,RNN 似乎适合这个问题。请尝试一些超参数调整,以确保您不会意外选择次优配置。

3) 谁能建议我如何使用 tensorflow 模型提供多个输入并获得必要的输出?谁能指导我。

处理可变长度输入的常用方法是设置最大长度并填充较短的示例,直到它们达到该长度。最大长度可以是您选择的变量,也可以将其动态设置为批处理中的最大长度。这只是因为内部操作是分批完​​成的。你可以选择你想要的结果。选择最后一个是合理的(模型只需要学习传播填充值的状态)。另一个合理的做法是在将最后一个有意义的值输入 RNN 之后,选择你得到的第一个。

查看您的代码,我会改进一件事:

我不会只计算最后一个值的损失,而是计算系列中的所有值。这为您的模型提供了更多的训练数据,而性能几乎没有下降。

【讨论】:

  • Instead of computing a loss on the last value only, I would compute it over all values in the series. This gives your model more training data with very little performance degradation. 先生,您能建议我具体添加什么吗?
  • 先生,我也想知道您所说的输入是什么意思?据我说,输入是列值。正如您在代码中看到的那样,我不只考虑一列,而是多于一列。请告诉我您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-09
  • 2016-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-16
  • 2017-09-14
相关资源
最近更新 更多