多步预测神经网络

时间:2012-04-26 04:28:46

标签: matlab machine-learning neural-network time-series nntool

我一直在使用matlab神经网络工具包。我在这里使用NARX网络。我有一个数据集,包括一个对象的价格以及一段时间内购买的对象的数量。该网络必不可少的是一步预测,数学定义如下:

y(t)= f(y(t -1),y(t -2),...,y(t -ny),x(t -1),x(t -2),.... ..,x(t -nx))

这里y(t)是时间t的价格,x是金额。所以我使用的输入功能是价格和金额,目标是时间t + 1的价格。假设我有100个这样的交易记录,每个交易都包含价格和数量。那么基本上我的神经网络可以预测第101次交易的价格。这适用于一步预测。但是,如果我想进行多步预测,那么我想预测前面的10个交易(第110个交易),那么我假设我对价格进行了一步预测,然后将其反馈到神经网络中。我一直这样做,直到我达到第110预测。然而,在这种情况下,在我预测第101个价格之后,我可以将这个价格提供给神经网络以预测第102个价格,但是,我不知道第101个交易的对象数量。我该怎么做?我正在考虑将我的目标设置为当前交易的10个交易的价格,因此当我预测第101个交易时,我基本上预测了第110个交易的价格。这是一个可行的解决方案还是我以完全错误的方式解决这个问题。在此先感谢您的任何帮助

2 个答案:

答案 0 :(得分:1)

与kostas所说的类似,一旦你有预测的101价格,你就可以用你所有的数据来预测101的金额,然后用它来预测102的价格,然后用102的价格来预测102的金额,等等但是,这会对每个变量的预测中出现任何错误。为了缓解这种情况,您可以添加其他一些功能,例如对过去值的逐渐减少折扣或在预测中使用的误差度量(在强化学习领域中搜索temporal difference learning类似的想法)。

答案 1 :(得分:0)

我猜你可以使用一个单独的神经网络对x进行时间序列预测,以便生成x(t + 1)到x(t + 10),然后使用这些值来提供另一个ANN来预测y(吨)。