Encog预测神经网络结果

时间:2014-10-01 19:29:47

标签: neural-network time-series predict encog

我一直在使用Encog Neural Net工作台(版本3.2)运行太阳黑子预测程序,并注意到当将未来预测窗口更改为大于1时, sunspot_output.csv 中的结果似乎是时间偏移,以便网络在 t = 0 评估时的输出实际上不是(t + 1),(t + 2),(t + 3)等。我很可能不理解工作台如何显示结果所以也许有人可以为我澄清这一点。

据我所知,如果您使用30的过去窗口和14的未来窗口,那么网络将查看最后30条记录并从最后一条可用记录预测(在这种情况下,假设 11 / 1/1951 是最后一个可用的记录)。因此,对 11/1/1951 的评估将回顾30条记录到5/1/1949,并使用此信息通过训练有素的网络来预测 12/1/1951的数据( t + 1),1/1/1952(t + 2),2/1/1952(t + 3),等。但是,查看结果文件似乎并非如此。 “预测”实际上似乎是前14个记录中的模式的重复。因此,(t + 1)实际上更能代表(t-14)08/01/1950 ,而不是来自(t = 0)的下一个记录。在 12/1/1951

我有一张图片显示了这一点,但不幸的是我似乎没有声望点发布它。为了重现这个问题,我建议使用Encog工作台并使用30的过去窗口,14的未来窗口和1%或2%的训练误差。

总结:

  1. 在查看预测网络结果时,有没有其他人注意到此问题,特别是提前一步以上?
  2. 为什么工作台结果显示当您查看与输出相关的日期时,编码预测神经网络未能正确预测未来。
  3. 感谢您的任何想法!

1 个答案:

答案 0 :(得分:0)

这不是一个问题,是滑动窗口时间序列预测器的工作原理。 我建议你加深https://www.cs.rutgers.edu/~pazzani/Publications/survey.pdf 这实际上取决于你如何调整神经网络。

如果你想要更强的预测能力,你必须提取特征或合成新特征(例如我会使用小波提取和去噪)。

注意正常化。如果您知道存在已知范围,则使用范围标准化,否则使用z标准化。 使用正确的激活函数:如果标准化范围为0,1则为Sigmoid;如果范围为-1,1则为tanh。

但是在结束之前神经网络没有预测我建议你使用包含在encog中的SVR(支持向量回归)。 它保证(如果存在)达到全球最低标准。 看看SVR是否比ANN更好地预测。 如果没有使用我的第一个建议; - )

蒙特拉