【问题标题】:Using Recurrent Neural Network to solve Time Series task使用循环神经网络解决时间序列任务
【发布时间】:2018-06-05 13:25:29
【问题描述】:

我有下一个问题要解决:预测下一天/一周的“工作需求”。 我有去年的样品(377 个样品,每天 1 个)。 我的变量与信息相关(或者至少我认为是相关的):日、周、月、假日、天气条件(温度、雨、雪)、订阅量(13 个变量) 我从开始到今天抽取了所有样本的需求,得到了:

如果我在一周内(周一、周二、...)拆分此需求,我会得到:

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

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

2) 用 NN 解决问题好不好?哪种类型?循环神经网络?

3) 如果 RNN 是最好的,我是否应该考虑另一个可能很常见但我没有考虑在内的变量?

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

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

6) 可以保留异常值还是应该删除它? (异常发生在节假日)

【问题讨论】:

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


    【解决方案1】:
    1. 不能说。似乎是。 2, 4. 是的,RNN 用于时间序列预测。
    2. 不确定是否按天拆分。但可能你有一些理由这样做。
    3. 我想,训练 7 个不同的网络比训练一个要难得多。
    4. 删除它们并替换为最近点的平均值。在我从事 RNN 的所有任务中,都很难解决异常问题。因为缩放(但如果您不删除它们,RobustScaler 可能会有所帮助)。

    【讨论】:

      【解决方案2】:

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

      definition 认为,时间序列是按时间顺序索引的一系列数据点。你的问题非常适合。所以,是的,这是一个时间序列问题。

      2) 用 NN 解决问题好不好?哪种类型?循环神经网络?

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

      3) 如果 RNN 是最好的,我是否应该考虑另一个可能很常见但我没有考虑在内的变量?

      这个问题没有统一的答案。深度网络可以从输入的特征中学习新特征(称为feature extraction),但也可能无法做到这一点,您必须做好准备。

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

      再一次,这个问题太宽泛了。没有单一的最佳方法。这就是为什么我在这里谨慎表述的原因:RNN 是一个很好的候选,换句话说,我看不出立即尝试有任何问题。

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

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

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

      6) 可以保留异常值还是应该删除它? (异常发生在节假日)

      一般来说,神经网络不擅长预测异常值,因为这里没有模式。但是您的第一个图表没有显示明显的异常值,因此使用它而不是使用每周图表是一个论据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-23
        • 2017-02-19
        • 2015-04-24
        • 2016-02-14
        • 2019-12-12
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多