人工智能 大数据 计算机科学

初认Prophet模型(一)--理论篇

2020-10-02  本文已影响0人  小小孩儿的碎碎念

目录

1、Prophet 简介
2、Prophet 适用场景
3、Prophet 算法的输入输出
4、Prophet 算法原理
5、Prophet 使用时可设置的参数
6、Prophet 学习资料参考
7、Prophet 模型应用

正文

1、Prophet 简介

fbprophet是facebook开源的一个时间序列预测算法。

prophet库可以做的

2、Prophet 适用场景

Prophet适用于具有明显的内在规律的商业行为数据,例如:有如下特征的业务问题:

3、Prophet 算法的输入输出

0.png

上图为一个时间序列场景:

传入prophet的数据分为两列 dsy ,ds表示时间序列的时间戳,y表示时间序列的取值

其中:

通过 prophet 的计算,可以计算出:

4、Prophet 算法原理

算法模型:
y(t)=g(t)+s(t)+h(t)+\epsilon_{(t)}

模型整体由三部分组成:

其中:

Prophet 算法就是通过拟合这几项,然后最后把它们累加起来就得到了时间序列的预测值。

4.1 趋势项模型 g(t)

趋势项有两个重要的函数,一个是基于逻辑回归函数的(非线性增长),另一个是基于分段线性函数的(线性增长)

4.1.1 基于逻辑回归的趋势项:

g(t) = \frac{C(t)}{1+exp(-(k+\boldsymbol{a}(t)^{T}\boldsymbol{\delta}) \cdot (t - (m+\boldsymbol{a}(t)^{T}\boldsymbol{\gamma})}\boldsymbol{a}(t) = (a_{1}(t),\cdots,a_{S}(t))^{T}, \boldsymbol{\delta} = (\delta_{1},\cdots,\delta_{S})^{T}, \boldsymbol{\gamma} = (\gamma_{1},\cdots,\gamma_{S})^{T}

其中,

4.1 2 基于分段线性函数的趋势项:

g(t)=(k+\boldsymbol{a}(t)^{T}\boldsymbol{\delta})\cdot t+(m+\boldsymbol{a}(t)^{T}\boldsymbol{\gamma})

其中,

4.1.3 变点的选择

在 Prophet 算法中,有三个比较重要的指标,分别为:

其中:

在默认的场景下,变点的选择是基于时间序列的前 80% 的历史数据,然后通过等分的方法找到 25 个变点,而变点的增长率是满足 Laplace 分布 \delta_{j} \sim Laplace (0,0.05) 的。因此,当 \tau 趋近于零的时候, \delta_{j} 也是趋向于零的,此时的增长函数将变成全段的逻辑回归函数或者线性函数。

4.1.4 对未来的预估

4.2 季节性趋势 s(t)

由于时间序列中有可能包含多种天,周,月,年等周期类型的季节性趋势,因此,傅里叶级数可以用来近似表达这个周期属性。

因此时间序列的季节项就是: s(t) = X(t) \boldsymbol{\beta}

其中,

4.3 节假日效应 h(t)

假设有 L 个节假日,那么节假日效应模型就是: h(t)=Z(t) \boldsymbol{\kappa}=\sum_{i=1}^{L} \kappa_{i}\cdot 1_{\{t\in D_{i}\}} ,其中 Z(t)=(1_{\{t\in D_{1}\}},\cdots,1_{\{t\in D_{L}\}})\boldsymbol{\kappa}=(\kappa_{1},\cdots,\kappa_{L})^{T} .

其中,

5、Prophet 使用时可设置的参数

6、Prophet 学习资料参考

官方链接:

案例链接:

上一篇下一篇

猜你喜欢

热点阅读