0

我一直在使用 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 笔交易的价格。这是一个可行的解决方案,还是我以完全错误的方式解决这个问题。提前感谢您的帮助

4

2 回答 2

1

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

于 2013-09-12T06:55:08.743 回答
0

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

于 2012-04-26T05:49:42.970 回答