使用递归神经网络解决时间序列任务

时间:2017-12-23 02:01:47

标签: machine-learning neural-network deep-learning time-series recurrent-neural-network

我有下一个需要解决的问题:预测第二天/周的“工作需求”。 我有去年的样本(377个样本,每天1个)。 我的变量是相关的信息(或者至少我认为它是相关的):日,周,月,假日,天气条件(临时,下雨,下雪),订阅量(13个变量) 我从开始到现在都提出了所有样品的要求,我得到了:

enter image description here

如果我在一周(星期一,星期二,......)分开这个需求,我得到: enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

我认为这是一个“时间序列”问题所以我试图用神经网络解决它,特别是使用递归神经网络。 我的问题是下一个:

1)这真的是一个“时间序列”问题吗?

2)用NN解决这个问题是不是很好?哪种类型? RNN?

3)如果RNN是最好的,我应该考虑另一个可能很常见的变量吗?我不考虑它吗?

4)如果神经网络不是最好的方法,那是哪一种?

5)我应该尝试培训7个不同的网络(一周中每天一个),还是应该尝试培训1个“大”网络?

6)是否可以保留异常值或者我应该删除它? (假日出现在外面)

2 个答案:

答案 0 :(得分:1)

  

1)这真的是一个“时间序列”问题吗?

definition,时间序列是按时间顺序索引的一系列数据点。你的问题很完美。所以,是的,这是一个时间序列问题。

  

2)用NN解决这个问题是不是很好?哪种类型? RNN?

RNN肯定是这个问题的候选者:RNN擅长捕获系列数据中的类似模式,例如,从语料库中的大量句子学习语言规则。您的第一个图表清楚地表明,在连续的时间步长点之间存在依赖关系。

  

3)如果RNN是最好的,我应该考虑另一个可能很常见的变量吗?我不考虑它吗?

这个问题没有普遍的答案。深层网络可以从输入的网络中学习新功能(称为feature extraction),但也可能无法这样做,您必须做好准备。

  

4)如果神经网络不是最好的方法,那是哪一种?

这个问题再一次过于宽泛。没有一种最好的方法。这就是为什么我在这里谨慎处理:RNN是一个很好的候选人,换句话说,我看不出任何立即尝试的问题。

有关于时间序列分析的书籍,统计库包括自回归,自相关,季节性等。讨论那些完全超出StackOverflow的范围。如果您有兴趣,我建议您在CrossValidated询问。

  

5)我应该尝试培训7个不同的网络(一周中每天一个),还是应该尝试培训1个“大”网络?

如果不同日期之间的分布明显多样化,您可以这样做。坦率地说,我没有在上面的图表中注意到,但是需要调查原始数据来回答这个问题。

  

6)是否可以保留异常值或者我应该删除它? (假日出现在外面)

一般来说,神经网络不善于预测异常值,因为这里没有模式。但是你的第一张图表并没有显示出明显的异常值,所以这是一个使用它的论据,而不是每个工作日图表。

答案 1 :(得分:0)

  1. 不能说。似乎是。 2,4。是的,RNN用于时间序列预测。
  2. 不确定按日分割。但可能你有理由这样做。
  3. 我想,培训7个不同的网络要比一个网络难得多。
  4. 将它们移除并替换为最近点的位置。在RNN工作的所有任务都很难解决异常问题。由于缩放(但如果你不删除它们,RobustScaler可能会有所帮助)。