时间序列预测分析[Time series prediction method]

Reason:彭哥老师给的项目,他没时间做,帮他做做,这部分东西我也不太懂,学习慢慢做,那里都有这种老师,清华也一样,可以拿习惯了当作理由,我不反对。

What

        白话1:时间序列预测分析就是利用过去一段时间内某事件时间的特征来预测未来一段时间内该事件的特征。这是一类相对比较复杂的预测建模问题,和回归分析模型的预测不同,时间序列模型是依赖于事件发生的先后顺序的,同样大小的值改变顺序后输入模型产生的结果是不同的。首先需要明确一点的是,时间序列可以分为平稳序列,即存在某种周期,季节性及趋势的方差和均值不随时间变化的序列,反之,及非平稳序列。

        白话2:时间序列预测法其实是一种回归预测方法,属于定量预测,其基本原理是:一方面承认事物发展的延续性,运用过去的时间序列数据进行统计分析,推测出事物的发展趋势;另一方面充分考虑到由于偶然因素影响而产生的随机性,为了消除随机波动产生的影响,利用历史数据进行统计分析,并对数据进行适当处理,进行趋势预测。

关于时间序列预测的一些总结

HOW 

        时间序列预测法分为传统时序建模方法现代预测方法。传统的就暂时没时间搞了,半路出家,没工夫搞太多数学理论,直接走现代预测方法。

这就指的是机器学习方法以及深度学习方法。

对于机器学习方法,xgboost,随机森林及SVM这些都是可以用的,也没有说哪个模型好用,需要看具体的场景及实验,总之就是看效果说话。那么,用数据挖掘的方法关键在于特征工程,跟其他挖掘任务不同的是,时间序列的特征工程会使用滑动窗口,即计算滑动窗口内的数据指标,如最小值,最大值,均值,方差等来作为新的特征。

对于深度学习方法,循环神经网络RNN用的最多也适合解决这类问题,但是,卷积神经网络CNN,及新出的空间卷积网络TCN都是可以尝试的。

Attention 

        实际场景中我们需要处理的时间序列往往会是没有趋势,非平稳的,但并不是说非平稳就一点都预测不了了。

(1) 概念漂移

        所谓概念漂移,表示目标变量的统计特性随着时间的推移以不可预见的方式变化的现象,也就是每过一段时间序列的规律是会变化的。所以,在这种情况下,拿全部时间内的数据去训练,就相当于是增加了各种噪声,预测精度是会下降的。所以,一种解决办法是不断的取最新的一阶段内的数据来训练模型做预测。之前做过一个变压器油温预测的数据,实验了用全量数据,一年内的数据,半年,3个月,一个月的数据做训练,其后几天的数据做预测,发现一个月的效果是最好的。那么如果你要问我,怎么判断一个序列是否存在概念漂移,我会告诉你,我也不知道,做实验吧!(有相关论文可以查阅一下)

(2)序列的自相关性

        过时间序列的朋友可能常常会有这样的感受,用了某种算法做出来的测试集的平均绝对误差率或者r2系数都很好,但是把测试集的真实值及预测值画出来对比一下,就会发现t时刻的预测值往往是t-1时刻的真实值,也就是模型倾向于把上一时刻的真实值作为下一时刻的预测值,导致两条曲线存在滞后性,也就是真实值曲线滞后于预测值曲线,就像下图右边所显示的那样。之所以会这样,是因为序列存在自相关性,如一阶自相关指的是当前时刻的值与其自身前一时刻值之间的相关性。因此,如果一个序列存在一阶自相关,模型学到的就是一阶相关性。而消除自相关性的办法就是进行差分运算,也就是我们可以将当前时刻与前一时刻的差值作为我们的回归目标。但是,在其他任务进行特征选择的时候,我们是会把目标变量相关性低的特征去掉,留下相关性强的特征。

        还有一点需要注意的是,单纯使用平均绝对误差率或者r2系数容易误导,因为即使指标效果很好,但是很有可能这个模型也是没有用的。一种做法是可以计算一个基准值,即如果全部预测值都采用上一时刻的真实值,这时候的平均绝对误差率或者r2系数是多少,如果你以后加了其他特征,依然没办法超过这个基准值或者提升不大,那就放弃吧,这个时间序列可能已经没办法预测了。

(3)训练集和测试集的划分

        在时间序列任务上,如果还跟其他任务一样随机划分训练集和测试集那就是耍流氓。随机划分的测试集,跟训练集的分布会是很接近的,效果肯定比一刀切的方法更好。因此,一般是选取某个时间节点之前作为训练集,节点之后作为测试集。比如有2012-2015年预测很多家店的未来的销量,那训练集可以是每家店2012-2014的数据,测试集是每家店2015年的数据。

(4)时间序列分解

这段内容参考自这里。对于无明显周期和非平稳时序数据,直接预测难以达到满意效果,可以利用经验模式分解(empirical mode decomposition,EMD)和长短期记忆(long short-term memory, LSTM)的组合算法应用于时序预测。将时序数据通过EMD算法进行分解,然后将分解后的分量数据分别转化为三维数据样本。对归一化的分量数据和原始数据分别进行预测建模及其 重构。实验结果表明EMD-LSTM更能有效的表达出家庭短期负荷的时序关系,具有更高的预测精度。所谓经验模式分解,能使复杂信号分解为有限个本征模函数(Intrinsic Mode Function,简称IMF),所分解出来的各IMF分量包含了原信号的不同时间尺度的局部特征信号,可以达到降噪的目的。另外看到类似的做法还有小波变换,这一块比较涉及数字信号的知识了。

preview

 

 

Reference:

https://zhuanlan.zhihu.com/p/54413813

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值