支持Python!Facebook开源预测工具Prophet

    xiaoxiao2022-05-12  134

    Facebook 表示,Prophet 相比现有预测工具更加人性化,并且难得地提供 Python 支持。另外,它生成的预测结果足以和专业数据分析师媲美。

    Facebook 把预测任务的流程用下图展示出来:

    从图中可以看出,预测共分四个流程:建模,预测评估,表面问题和人工检查。

    在建模阶段,当前可用的 Python 工具包寥寥无几。最广为人知的 “ forecast” ,谷歌开发的 CausalImpact, 以及推特的  AnomalyDetection,均是基于 R 语言。很显然,Facebook 想要改变这一点。

    从 Facebook 官方声明来看,推出 Prophet,是希望用它来替代 forecast,成为最受欢迎的预测工具。雷锋网(公众号:雷锋网)了解到,相对于后者,Facebook 表示 Prophet 有两大优点:

    开发合理、准确的预测模型更加直接。

    Prophet 包含许多预测技术,比如 ARIMA 和 exponential smoothing。每一项工具都有它的长处、短处和调节参数。Facebook 表示,选择不恰当的模型或参数会造成让人难以满意的结果;而即便是有经验的数据分析师在选择模型、参数上也经常遇到困难。言下之意是,Prophet 将着重改善这方面的体验,让模型、参数的选择更直观。

    用 Prophet 做出的预测,能够以对普通人更加直观的方式进行定制。

    Prophet 有针对周期性的平滑参数(smoothing parameters for seasonality),允许开发者调整与历史周期的匹配程度。它还有针对趋势的平滑参数,能够调整对历史趋势变化的紧跟程度。对于增长曲线(growth curves),开发者能人工设置上限,即 capacities,把关于“该预测如何增长(或下降)”的先验信息注入进去。最后,开发者还能设置不规则日期,来对超级碗、感恩节、黑色星期五之类的特殊日子进行建模。

    组成部分

    在它的核心,Prophet 是一个可加回归模型(additive regression model),它有四个组成部分:

    一个分段的线性或逻辑增长曲线趋势。Prophet 通过提取数据中的转变点,自动检测趋势变化。

    一个按年的周期组件,使用傅里叶级数(Fourier series)建模而成。

    一个按周的周期组件,使用虚拟变量(dummy variables)。

    用户设置的重要节日表。

    适用范围

    雷锋网获知,Prophet 针对的是商业预测任务,适用于具备以下特征的场景:

    针对每小时、每天或每星期的观察频次,有至少数月(理想情况的一年)的历史记录。

    多重显著的“人类层级”周期性:星期X以及年份。

    日期间隔不规则的重要节日(比如超级碗),需要事先得知。

    观察缺失或是异常值在合理范围内。

    历史趋势变化,比如产品发布或者改写记录(logging changes)。

    符合非线性增长曲线的趋势,有天然上、下限或者饱和点。

    想要进一步了解 Prophet 的读者,请参考以下链接:

    Facebook 博客:https://research.fb.com/prophet-forecasting-at-scale/

    使用指南:https://facebookincubator.github.io/prophet/docs/quick_start.html

    文件:http://facebookincubator.github.io/prophet/

    本文作者:三川 本文转自雷锋网禁止二次转载, 原文链接 相关资源:python 时间序列预测 —— prophet

    最新回复(0)