【问题标题】:Multi Step Prediction Neural Networks多步预测神经网络
【发布时间】:2012-05-06 19:43:54
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-02
        • 2017-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多