作家
登录

在R中使用开源大规模预测工具Prophet

作者: 来源: 2017-05-08 16:03:17 阅读 我要评论

Prophet 是 Facebook 推出的开源大年夜范围猜测对象,可以在 R 和 Python 中应用以猜测时光序列数据。

一、基本介绍

下面实例中应用的是佩顿 · 曼宁的维诽谤科主页每日拜访量的时光序列数据(2007/12/10 – 2016/01/20)。我们应用 R 中的 Wikipediatrend 包获取该数据集。这个数据集具有多季候周期性、赓续变更的增长率和可以拟合特定日期(例如佩顿 · 曼宁的决赛和超等碗)的情况等 Prophet 实用的性质,是以可以作为一个不错的例子。( 注: 佩顿 · 曼宁为前美式橄榄球四分卫)

在 R 中,Prophet 供给了一个 prophet 函数去拟合模型并且返回一个模型对象,可以对这个模型对象履行“猜测”( predict )和“画图”( plot )操作。

应用 prophet_plot_components 函数去展示预估中的趋势、周效应和年度效应。

注: Windows 体系说话设置为中文的话,会导致 R 输出成分分析图时,周效应无法正常显示,可在 R 中应用 Sys.setlocale("LC_ALL","English") 代码精细况改为英文。

二、猜测增长

默认情况下, Prophet 应用线性模型进行猜测。当猜测增长情况时,平日会存在可达到的最大年夜极限值,例如:总市场范围、总人口数等等。这被称做承载才能,那么猜测时就应当在接近该值时趋于饱和。

Prophet 可应用 logistic 增长 趋势模型进行猜测,同时指定承载才能。下面应用 R 说话的维诽谤科主页 拜访量(取对数)的实例来进行解释。

默认情况下, Prophet 将主动监测到突变点,并对趋势做适本地调剂。

下面将会介绍几种应用的办法可以对趋势的调剂过程做更好地控制。

1. 调剂趋势的灵活性

如不雅趋势的变更被过度拟合(即过于灵活)或者拟合不足(即灵活性不敷),可以应用输入参数 changepoint.prior.scale 来调剂稀少先验的程度。默认下,这个参数被指定为 0.05 。

增长这个值,会导致趋势拟合得加倍灵活。如下代码和图所示:

削减这个值,会导致趋势拟合得灵活性降低。如下代码和图所示:

四、节假日效应

1. 对节假日建模

如不雅须要专门对节假日进行建模,你就必须得为此创建一个新的数据框,个中包含两列(节假日 holiday 和日期戳 ds ),每行分别记录了每个出现的节假日。

下面我们创建一个数据框,个中包含了所有佩顿 · 曼宁参加过的决赛日期:

和之前比拟,节假日效应的范围被减弱了,特别是对不雅测值较少的超等碗而言。类似的,还有一个 seasonality.prior.scale 参数可以用来调剂模型对于季候性的拟合程度。

上述代铝闼楝我们将超等碗的日期既记录鄙人场赛的日期数据框中,也记录在了超等碗的日期数据框中。这就会造成超等碗日期的效应会在决赛日期的感化下叠加两次。

一旦这个数据框创建好了,就可以经由过程传入 holidays 参数使得在猜测时推敲上节假日效应。

可经由过程 forecast 数据框,来展示节假日效应:

在成分分析的图中,如下所示,也可以看到节假日效应。我们可以发明,在决赛日期邻近有一个穿透,而在超等碗日期时穿公则更为明显。

下面将简单介绍 Prophet 在 R 中的应用。


  推荐阅读

  深度学习的时间序列模型评价

技巧总言:此次重要说比来成长的无监督特点进修和深刻进修,其对于时光序列模型问题的评价。这些技巧已经展示了欲望对于建模静态数据,如计算机视觉,把它们应用到时光序列数据正在获得越>>>详细阅读


本文标题:在R中使用开源大规模预测工具Prophet

地址:http://www.17bianji.com/lsqh/35074.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)