科技俱乐部菌|DeepAR 进行时间序列预测,使用( 二 )


科技俱乐部菌|DeepAR 进行时间序列预测,使用
文章图片
【科技俱乐部菌|DeepAR 进行时间序列预测,使用】图2时序预测分类对应关系
时序预测算法有很多很多 , 在这里只介绍典型的四种算法 , 并着重介绍DeepAR算法 。
科技俱乐部菌|DeepAR 进行时间序列预测,使用
文章图片
图3四种时序预测算法
简单移动平均SMA是统计学中易实现的一种算法 , 他能很有效的体现出数据长期的趋势 , 但无法反映数据周期性的变化 。 将自回归(AR)的算子加上移动平均(MA) , 就是ARIMA算法 。 回归能够反映数据的周期性规律 , 和移动平均形成互补 , 从统计学的角度可以很好的预测一元与时间强相关场景下的时间序列 , 由于原理简单好理解 , 算法也只是一行数学公式 , ARIMA也常常在时间序列预测时先拿来做第一步实验(baseline) 。
长短期记忆算法LSTM是在循环神经网络RNN的基础上 , 引出了遗忘门和记忆门 , 从而可以在长期训练的过程中筛选出我们需要的内容 。 在时间序列预测中 , LSTM对于一元预测场景的效果还是不错的 。
DeepAR是一个自回归循环神经网络 , 使用递归神经网络(RNN)结合自回归AR来预测标量(一维)时间序列 。 在很多应用中 , 会有跨一组具有代表性单元的多个相似时间序列 。 DeepAR会结合多个相似的时间序列 , 例如是不同方便面口味的销量数据 , 通过深度递归神经网络学习不同时间序列内部的关联特性 , 使用多元或多重的目标个数来提升整体的预测准确度 。 DeepAR最后产生一个可选时间跨度的多步预测结果 , 单时间节点的预测为概率预测 , 默认输出P10 , P50和P90三个值 。 这里的P10指的是概率分布 , 即10%的可能性会小于P10这个值 。 通过给出概率预测 , 我们既可以综合三个值给出一个值预测 , 也可以使用P10–P90的区间做出相应的决策 。 有关DeepAR数学运算背景的更多信息 , 请参阅DeepAR:概率性预测与自回归递归网络 。
DeepAR算法优势
时间序列预测在真正去做的时候 , 难免会遇到关于数据的问题 , 例如无法完整收集所有影响因素的数据 , 影响因素在未来具有不确定性 , 有时只有很少甚至没有历史数据 。 数据往往是卡住大多数时序预测工作负载最大的问题 。
DeepAR能够在一定程度上减轻对数据的要求 。 作为一种监督学习算法 , DeepAR直接在模型内部补充缺省值 。 在导入数据的过程中 , 我们不需要人为的扫描数据寻找缺省值 , 不需要为如何填补缺省值大费周章 , DeepAR模型内部会解决这一问题 。 利用DeepAR , 可以将时间序列与多个分组关联 , 可以处理统计学难以处理的非线性问题和规模问题 , 可以在几乎没有历史数据的情况下执行冷启动时间序列预测 , 只需要有类似的事件序列相支持 。 例如 , 我有历史方便面的销售数据若干 , 现在新上市了一款自热米饭 , 只有几天的数据 , 依然可以使用DeepAR结合历史方便面的数据预测自热米饭的未来销售走势 。 这也是算法的一大亮点 。
联合多重时间序列本身是一件挑战性十足的事 , 数据样本的不均衡导致了不同时间序列对于模型的影响程度是不同的 。 拿商品销售为例 , 销售数量多一个数量级 , 商品数量就少一个数量级 , 每个月卖10个的商品如果有100,000种 , 每个月卖100个的商品就只有10,000种 , 每个月卖1000个的商品就只有1000种 。 这种不均衡样本导致输入值的量级差异 , 商品A每天销售数百个 , 商品B每天销售数万个 , 两个商品共同训练时商品A的信息会被忽略掉 , 因为相对于B而言 , A对神经网络参数的影响太低 。 但是 , A时间序列中隐含的信息是有价值的 , 数百个销售额仍然能够反映季节性和趋势性的变化 。
科技俱乐部菌|DeepAR 进行时间序列预测,使用


推荐阅读