Prophet:Facebook 简单高效的时间序列模型

导读:

时序预测是一个很常见的数据科学任务,可以帮助组织或个人进行目标规划或者异常检测等。

本文介绍的是 Facebook 2017 年的工作——Prophet,这是一个适用于大规模的时序预测模型。它不仅解决了时序预测的建模问题,还解决了模型的可解释性问题。

此外,Facebook 提供了 Prophet 的开源代码,并且将模型封装的非常简单且友好,极大地降低了分析人员的入门门槛,同时也提供了各种接口以便分析人员灵活地调整模型。

1 为什么有 Prophet

构建一个高质量的预测不是一件容易事,而在商业预测的实践过程中通常会出现两个问题:

完全自动的预测技术不够灵活,过于死板;分析师通常有较高的专业知识,但是在时序模型预测方面一无所知;

预测是一个需要大量专业经验的任务,因此,如何能够提供一个高质量且简单易用的预测模型成了一个亟需解决的问题。

为此,Facebook 的研究员进行了大量的研究,并提出了 Prophet 模型,该模型非常简单灵活,适用于没有进行过时序预测的人员,同时也提供了非常人性化的配置。

下图展示了大规模商业分析中的循环方法,其由自动化建模和人工干预两部分组成:

Modeling:首先分析师会使用制定的参数对时间序列进行建模;Foreca and Evaluation:然后由模型产生预测并对其进行评估;Surface Problems:当性能不佳时可以进行人工干预,并将问题标记给分析师;Visually Inspect Forecasts:分析师进行检查并根据反馈调整模型。

2 Prophet 预测模型

在介绍模型之前,我们先看一张图:

这是 Facebook 的真实数据集,每一天都有一个点,点的颜色按照星期进行编码,以展示一个星期的周期性。

从这张图中我们可以看到:这个时间序列具有周期性 (weekly、yearly)、趋势变化性 (Trend)、异常点 (outliers) 和节假日效应 (holiday)。

我们可以使用时间序列分解将其分解为趋势、季节性、节假日:

其中,g(t)建模时间序列值非周期变化的趋势函数;s(t)建模周期性变换,包括 weekly、yearly;h(t)建模不规律的假期影响;误差项 表示模型不适应的任何特殊变化;后面我们会假设这个参数服从正态分布。

这类规范类似于广义可加模型 (Generalized additive model,GAM),这是一种非线性的回归模型。这里 Prophet 只使用时间作为回归因子,并用几个线性和非线性的时间函数作为分量。

GAM 不具备 ARIMA 重要的推论优势,但其也具备其他方面的优势:

灵活性强,易于分解,且在必要时也可以容纳新的成分;拟合速度快,允许用户进行交互式探索;测量值不需要有规则的间隔,也不需要对缺失值进行处理;参数的可解释性强,方便用户更改。

接下来我们关注模型分解后的不同模块。

1234下一页>

(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )

赞助商
2020-08-03
Prophet:Facebook 简单高效的时间序列模型
导读:时序预测是一个很常见的数据科学任务,可以帮助组织或个人进行目标规划或者异常检测等。本文介绍的是 Facebook 2017 年的工作——Prophet,这是一个适用于大规模的时序预测模型。

长按扫码 阅读全文