prophet论文阅读笔记

prophet是facebook在2017年提出的一种解决大规模时间序列预测问题的算法库,它是一种模块化的回归模型,具有可解释性的参数,并且可以很方便的通过领域知识进行调节。
facebook提出这个算法库的初衷是创建高质量的商业预测,其尝试处理很多在商业时序数据中很常见的情况:
(1)人类行为导致的季节性效应:一些周期性变化
(2)新产品和市场事件导致的趋势变动
(3)离群值
(4)缺失的历史数据或离群值的数量在合理的范围内
(5)

商业预测中存在两个主要的问题:
(1)完全自动的预测不太灵活,很难去结合一些专家知识
(2)领域的数据分析师通常有很强的业务理解,但是很少具备时间序列预测方面的知识。

prophet论文阅读笔记_第1张图片
步骤:

  1. Modeling:分析师根据预测问题的背景选择一个合适的模型
  2. Forecast Evaluation:使用模型对历史数据进行仿真并评估
  3. Surface problem:如果模型的表现不理想,可以将误差较大的潜在原因呈现给分析师
  4. Visually inspect:以可视化的方式反馈整个预测结果,分析师根据呈现的问题考虑是否进一步调整和构建模型

不同于传统的时间序列模型,如ARIMA等,prophet实际上是一个广义加性模型,跟常规的广义加性不同的是,prophet只将时间作为输入,相加的是关于时间的不同函数,而不像常规的加性模型相加的是不同输入的函数:

prophet模型
g(t)为趋势项,s(t)为季节项,h(t)为节假日项, ϵ t \epsilon_t ϵt为误差项,且服从高斯分布。

从prophet的主要思想可以看出,其一定程度上舍弃了时间维度上的推理能力,比如ARIMA显示定义了过去数据与现在数据的关系,但同时也引入了许多优点:
(1)采用加性模型的结构,可解释性强,而且容易扩展;
(2)不像ARIMA等模型,prophet不需要对缺失值进行处理;
(3)训练速度很快,允许分析师在有限的时间内尝试许多不同的模型配置;
(4)具有容易解释的参数

prophet主要组成部分:

(1)趋势模型

prophet提供了两种趋势模型,非线性增长模型与分段线性增长模型。

非线性增长模型

分段线性增长模型

(2)自动变点选择

(3)如何确定要预测的时间段内的变点

  1. 用已经学的的模型的趋势增长率的变化量 δ i \delta_i δi 来估计未来增长率变化点的增长量服从的laplace分布的标准差。
    . 在这里插入图片描述
    上面公式是最大似然估计的结果。
  2. 计算增长率变化点在历史数据中出现的频率,假设历史数据共T个时间戳,其中S个变化点,则出现频率为 S / T S/T S/T
  3. 从未来的时间序列中选择一定量的变点,其中每一个变点是都被选择服从一个0-1分布,且
    P ( 某 点 被 选 中 ) = S / T P(某点被选中)=S/T P()=S/T
  4. 当变点确定之后,就可以从laplace分布中对增长率变化量进行采样了

(4)季节性

优点(文章中说的):默认配置的prophet就可以生成媲美经验丰富的分析师的预测;具有一些直观且易于解释的定制功能,以供逐渐改善预测模型;即便不是时序分析的专家,也可以理解这些参数;
适用场景广泛:

你可能感兴趣的:(笔记杂)