预计阅读时间:8min
阅读建议:本文为工作中总结出来的经验,内容相对好理解,干货较多,建议「收藏」哦。
解决痛点:“还有一个月就春节了,老板希望预测春节的订单量,该如何预测呢?”本文以预测的价值为出发点,和大家分享不同场景所适用的预测方式,并着重介绍一种容易理解且精准度较高的预测模型 - Prophet。
01
预测在工作中的价值
不知是否有同学会有这样的疑问:“预测在数据分析中的定位是什么样?它能给业务带来的价值又是什么?”
首先,预测在数据分析中的定位是什么样?
数据分析的目的是更科学、更客观地对产品进行度量及洞察。一方面,解决的是对于产品现状的衡量,即「后验性分析」;另一方面,是对于业务未来的预期及指引,即「先验性分析」。而预测则是后者,它能够帮助业务看到未来可见时间段的业务状态。
其次,它能给业务带来的价值又是什么?
根据预测周期的长短,带来价值的侧重点是有差异的:
02
什么是时间序列预测
这里我们说的预测指的是「时间序列预测」,时间序列预测是根据数据过去一段时间的状态,在满足「趋势一致」以及「不发生跳变」的前提下,预测未来一段时间的数据情况。
时间序列预测图
03
时间序列预测的常用方式
时间序列预测方式有很多,大体可以划分为三种类型:
时间序列预测常用方式
① 同环比
这种方式最为简单,根据同期值及近期权重进行拟合,适合于日常及节假日预测,附上之前应用过的公式,大家可以参考:
「同环比」方式弊端
1、预测的精准度较差
2、仅适用于短期预测,对于中长期表现不佳
② 自回归系列
自回归(Auto Regression)为传统的时间序列,其中涵盖:ARMA、ARIMA、ARCH等模型。此种方式的统计学原理比较简单,所以在预测的场景中也是比较通用。
「自回归系列」方式弊端
1、仅适用于短期预测,对于中长期表现不佳
2、无法处理由于节假日、特殊时点(例如:双十一)等带来的变点问题
3、模型的解耦能力较差,无法分析出影响准确率的潜在因素
③ Prophet模型
基于传统时间序列的问题,Prophet模型的诞生,无疑是提出了另外一种解决方案,将预测问题转化为拟合问题。下面将和大家分享此种模型的原理,以及如何通过python代码进行实现。
04
Prophet是什么
Prophet是Facebook数据科学团队于2017年发布的开源预测软件包,其内容发表在《Forecasting at scale》论文中。目前可以通过Python和R进行实现,该模型可以通过简单的参数配置,实现高精准的时间序列预测。
Prophet预测效果图
05
Prophet适用场景
预测模型均有其适用的场景,Prophet也不例外,只有在合适的场景下,才能发挥模型本身的威力,具体适用场景如下:
06
Prophet优势
Prophet相比其他预测模型具有一定优势,主要体现在以下几个方向:
预测模型误差(此图来源于百度)
07
Prophet原理
前面提到,Prophet可将趋势项、周期项、节假日项解耦开来,因此该模型也是由这三者,加上噪声项组合而成,如下图:
Prophet公式
g(t):趋势项。用于拟合时间序列非周期性的趋势变化。例如:上升、下降趋势;
s(t):周期项。用于拟合周、月、季的周期性变化趋势;
h(t):节假日项。用于表示潜在的跳变点对预测的影响。例如:节假日、突发事件等;
ϵ(t):噪音项。用于表示未预测到的随机波动。
将各项拆开的优势非常明显,可以清晰的定位预测中的问题,通过Prophet解耦输出效果图如下:
Prophet解耦输出效果图
下面和大家详细介绍一下趋势项、周期项、节假日项的计算方式及注意事项。
1、 趋势项
数据的变化趋势,是模型的核心项,用于表示数据在一段时间的状态,按照何种形式增长或下降。根据趋势模式,可划分为「线性模型」和「非线性模型」,模型默认为线性模型,非线性模型采用逻辑回归方式进行拟合。这两种方式的适用场景有所差异。
线性模型公式
线性模型趋势图
非线性模型公式
非线性模型趋势图
2、 周期项
在时间序列的预测中,周期项是避不开的一部分,周期包括但不限于:季度、月、周、日。这里可采用傅里叶级数的方式近似表示这一项。(附上公式)
周期项公式
3、 节假日项
除了常规的趋势和周期以外,在我们日常生活中,还会遇到节假日及特殊时点,这些节点会直接影响数据的变化程度,例如:双十一订单量会激增。节假日项,是Prophet相比其他模型的优势。
Prophet将节假日作为单独的模型,可以在模型中设定节假日影响的周期,例如:虽然春节只有7日,但是春运窗口则将近30日。(附上公式)
节假日项公式
总体来讲,Prophet是通过四个组件模型自加形成整体模型,并采用Stan的L-BFGS来进行模型拟合。
L-BFGS含义说明
L-BFGS用于解决无约束非线性规划问题,具有收敛速度快、内存开销少等优点,在机器学习各类算法中经常出现。类似SGD(随机梯度下降),但大多数情况下收敛更快。
以上就是本期的内容分享,希望能让你对Prophet模型有一个较为清晰的认知。