当前位置: 首页 > 知识库问答 >
问题:

是否可以使用LSTM预测作为下一时间步的输入?

仲孙钊
2023-03-14

我正在使用LSTM(PyTorch)进行多元时间序列预测。让我们想象一下这种情况:我有两个时间序列,A和B,我想用A和B的先前值(在t之前)预测B的t值。这样的预测效果很好,我的模型得到了很好的结果。

但是,如果(在测试期间,训练后)我想使用B的预测值作为下一个时间步骤的输入,而不是实际值,该怎么办?例如:我预测B的第一个值,做一个步骤,把预测值代替一个真实值,然后再次进行预测。然后我使用两个预测值,而不是真正的两个,以此类推。在某些步骤中,只有预测值将在时间序列B中。

有没有可能做到这一点?

共有1个答案

淳于亦
2023-03-14

这正是人们通常为机器翻译和文本生成所做的。在这种情况下,LSTM预测词汇表的分布,您选择一个单词,并在下一步将其用作网络的输入。有关更多详细信息,请参阅Pytoch机器翻译教程。

重要的一点是,LSTM在两种情况下执行:

>

  • 用于培训:作为标准序列标签。它是提供的输入,它应该预测未来的一个步骤。

    推理:它逐渐生成新样本,并将其用作下一个输入。在PyTorch中,这需要通过显式for循环实现。

  •  类似资料:
    • 根据教程,我为我的数据集开发了多元输入多步骤LSTM时间序列预测模型(https://machinelearningmastery.com/how-to-develop-lstm-models-for-multi-step-time-series-forecasting-of-household-power-consumption/). 然而,我有一个非常奇怪的问题,那就是,当我使用较小的样本(5

    • 问题内容: 我想到一个与使用pybrain进行时间序列回归相关的问题。我计划在pybrain中使用LSTM层来训练和预测时间序列。 我在下面的链接中找到了示例代码 例如请求:递归神经网络,用于预测序列中的下一个值 在上面的示例中,网络能够在训练后预测序列。但是问题是,网络通过将数据一次性输入到输入层来获取所有顺序数据。例如,如果训练数据每个都有10个特征,那么这10个特征将同时被同时馈送到10个输

    • 我有一个包含一整年数据的时间序列数据集(日期是索引)。数据每15分钟测量一次(全年),结果是每天96个时间步。数据已规范化。这些变量是相关的。除VAR外的所有变量都是天气度量值。 VAR在一天期间和一周期间都是季节性的(因为它在周末看起来有点不同,但每个周末都不一样)。VAR值是固定的。我想预测未来两天(前192步)和未来七天(前672步)的VAR值。 以下是数据集的示例: 下面是我准备train

    • 我想拆分我的验证器的声明和实现,与Spring boot环境中的这个问题非常相似。看起来好像是我让它几乎起作用了。我看到我的验证器实际上是由Spring验证调用的,但在执行验证后,Hibernate会抛出一个异常: 这是因为是一个接口(如预期)。 我已经这样配置了Spring(这是一个不同问题的答案): 我的自定义验证器: 所以它试图通过验证器名称找到一个Spring bean。所以我有一个验证器

    • public class bonus 1 { public static void main(String[]args){ } } 这段代码并不完整,前两个for循环将在commandline -1中生成一个介于0和给定数字之间的数组,例如java Bonus1 10将首先生成一个介于0-9之间的数组,然后它将这些数字混洗,从而创建一个随机排列。 因此,例如,如果我得到排列7 8 2 3 4 5

    • 问题内容: 加载Angular应用后,我需要一些模板可以脱机使用。 这样的事情将是理想的: 问题答案: 有一个 模板缓存服务 :$ templateCache ,可用于在javascript模块中预加载模板。 例如,取自文档: 甚至还有一个艰巨的任务,可以从html文件中预先生成一个javascript模块:grunt-angular- templates 另一种可能不太灵活的方法是使用 内联模板