Facebook时间序列预测算法Prophet的研究

栏目: 编程工具 · 发布时间: 5年前

内容简介:这次小编给各位读者带来一篇关于Facebook 去年开源的时间序列预测算法fbprophet的文章,并和大家一起学习这个算法的原理、数据的输入和输出。Facebook 去年开源了一个时间序列预测的算法,叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站:

Facebook时间序列预测算法Prophet的研究

编者按:

这次小编给各位读者带来一篇关于Facebook 去年开源的时间序列预测算法fbprophet的文章,并和大家一起学习这个算法的原理、数据的输入和输出。

Prophet 简介

Facebook 去年开源了一个时间序列预测的算法,叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站:

  1. Github:

    https://github.com/facebook/prophet

  2. 官方网址:

    https://facebook.github.io/prophet/

  3. 论文名字与网址:

    Forecasting at scale,https://peerj.com/preprints/3190/

从官网的介绍来看,Facebook 所提供的 prophet 算法不仅可以处理时间序列存在一些异常值的情况,也可以处理部分缺失值的情形,还能够几乎全自动地预测时间序列未来的走势。从论文上的描述来看,这个 prophet 算法是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了 pyStan 这个开源工具,因此能够在较快的时间内得到需要预测的结果。除此之外,为了方便统计学家,机器学习从业者等人群的使用,prophet 同时提供了 R 语言和 Python 语言的接口。从整体的介绍来看,如果是一般的商业分析或者数据分析的需求,都可以尝试使用这个开源算法来预测未来时间序列的走势。

Prophet 的算法原理

Prophet 数据的输入和输出

Facebook时间序列预测算法Prophet的研究

首先让我们来看一个常见的时间序列场景,黑色表示原始的时间序列离散点,深蓝色的线表示使用时间序列来拟合所得到的取值,而浅蓝色的线表示时间序列的一个置信区间,也就是所谓的合理的上界和下界。prophet 所做的事情就是:

  1. 输入已知的时间序列的时间戳和相应的值;

  2. 输入需要预测的时间序列的长度;

  3. 输出未来的时间序列走势。

  4. 输出结果可以提供必要的统计指标,包括拟合曲线,上界和下界等。

就一般情况而言,时间序列的离线存储格式为时间戳和值这种格式,更多的话可以提供时间序列的 ID,标签等内容。因此,离线存储的时间序列通常都是以下的形式。其中 date 指的是具体的时间戳,category 指的是某条特定的时间序列 id,value 指的是在 date 下这个 category 时间序列的取值,label 指的是人工标记的标签('0' 表示异常,'1' 表示正常,'unknown' 表示没有标记或者人工判断不清)。

Facebook时间序列预测算法Prophet的研究

而 fbprophet 所需要的时间序列也是这种格式的,根据官网的描述,只要用 csv 文件存储两列即可,第一列的名字是 'ds', 第二列的名称是 'y'。第一列表示时间序列的时间戳,第二列表示时间序列的取值。通过 prophet 的计算,可以计算出 yhat,yhat_lower,yhat_upper,分别表示时间序列的预测值,预测值的下界,预测值的上界。两份表格如下面的两幅图表示。

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

Facebook时间序列预测算法Prophet的研究

结束语

对于商业分析等领域的时间序列,Prophet 可以进行很好的拟合和预测,但是对于一些周期性或者趋势性不是很强的时间序列,用 Prophet 可能就不合适了。但是,Prophet 提供了一种时序预测的方法,在用户不是很懂时间序列的前提下都可以使用这个 工具 得到一个能接受的结果。具体是否用 Prophet 则需要根据具体的时间序列来确定。

参考文献:

  1. https://otexts.org/fpp2/components.html

  2. https://en.wikipedia.org/wiki/Decomposition_of_time_series

  3. A review of change point detection methods, CTruong, L. Oudre, N.Vayatis

  4. https://github.com/facebook/prophet

  5. https://facebook.github.io/prophet/


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

科技想要什么

科技想要什么

[美] 凯文·凯利 / 熊祥 / 中信出版社 / 2011-11 / 58.00元

在《科技想要什么》一书中,凯文•凯利向我们介绍了一种全新的科技观。他认为,作为整体,科技不是由线路和金属构成的一团乱麻,而是有生命力的自然形成的系统,它的起源完全可以回溯到生命的初始时期。正如生物进化呈现出无意识的趋势,科技也是如此。通过追踪这些长期趋势,我们可以对“科技想要什么”有所理解。 凯文•凯利预测了未来数十年科技的12种趋势,包括创造大脑这一得寸进尺之举。不过,为了让人类创造的世界......一起来看看 《科技想要什么》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具