Prophet(预言者)facebook时序预测----论文总结以及调参思路
来源:互联网 发布:ui平面设计软件 编辑:程序博客网 时间:2024/05/17 22:12
Prophet是比较简单易用的,对于非时序预测和机器学习领域专家的是非常容易上手的。其参数大多数都是非常直观的参数。(Prophet的python包大量使用了pandas库,所以使用python做开发的需要首先了解pandas的使用。)
Prophet也是一种约定优于配置的思想,写代码只需要按照约定的套路定义好pandas中的dataframe就可以轻松进行预测。
下面我们来进行一个官方网站提供的Quick Start来进行学习了解。
import pandas as pdimport numpy as npfrom fbprophet import Prophetimport matplotlib.pyplot as plt# 数据文件请从github上的Prophet项目下载,并放在代码的对应目录df = pd.read_csv('examples/example_wp_peyton_manning.csv')df['y'] = np.log(df['y'])print df.tail()# 定义模型m = Prophet()# 训练模型m.fit(df)# 构建预测集future = m.make_future_dataframe(periods=365)print future.tail()# 进行预测forecast = m.predict(future)print forecast.tail(10)forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail(10)m.plot(forecast)plt.show()
上图为最终的作图结果,其中蓝色线为预测结果,黑色点为原数据点。除此之外,由于Prophet使用的是加性模型,也就是把模型分为趋势模型、周期模型、节假日以及随机噪声的叠加。因为我们可以方便对各个成分进行作图观察。我们可以利用m.plot_components(forecast)
,对各个成分进行作图观察,如下:
默认会画出趋势、年周期、星期周期成分(如果在定义模型时给出了holiday参数,还会做出holiday的成分图)
- 下面干货,从我的学到的经验中设计如何利用Prophet构建有效的预测模型。
- 首先我们去除数据中的异常点(outlier),直接赋值为none就可以,因为Prophet的设计中可以通过插值处理缺失值,但是对异常值比较敏感。
- 选择趋势模型,默认使用分段线性的趋势,但是如果认为模型的趋势是按照log函数方式增长的,可设置
growth='logistic'
从而使用分段log的增长方式 - 设置趋势转折点(changepoint),如果我们知道时间序列的趋势会在某些位置发现转变,可以进行人工设置,比如某一天有新产品上线会影响我们的走势,我们可以将这个时刻设置为转折点。
- 设置周期性,模型默认是带有年和星期以及天的周期性,其他月、小时的周期性需要自己根据数据的特征进行设置,或者设置将年和星期等周期关闭。
- 设置节假日特征,如果我们的数据存在节假日的突增或者突降,我们可以设置holiday参数来进行调节,可以设置不同的holiday,例如五一一种,国庆一种,影响大小不一样,时间段也不一样。
- 此时可以简单的进行作图观察,然后可以根据经验继续调节上述模型参数,同时根据模型是否过拟合以及对什么成分过拟合,我们可以对应调节seasonality_prior_scale、holidays_prior_scale、changepoint_prior_scale参数。
相关网站:
- Prophet官方文档:https://facebook.github.io/prophet/
- Prophet论文:https://peerj.com/preprints/3190/
- Prophet-github:https://github.com/facebook/prophet
阅读全文
0 0
- Prophet(预言者)facebook时序预测----论文总结以及调参思路
- Facebook大规模时序预测『真』神器—Prophet
- R+先知︱Facebook大规模时序预测『真』神器——Prophet(遍地代码图)
- Facebook大规模时序预测『真』神器——Prophet
- 用R中prophet包做时序预测
- facebook开源预测工具Prophet安装方法
- facebook prophet的探索(python语言)
- 时序预测(网络流量预测)方法调研总结
- 使用R的prophet包做一个简单的时序预测
- Facebook 开源大规模预测工具 Prophet:支持 Python 和 R
- 业界 | Facebook开源大规模预测工具Prophet:支持Python和R
- win10 下安装facebook开源预测工具Prophet的方法
- 论文阅读思路总结
- prophet:时间序列预测模型原理
- 时序预测技术
- 马尔可夫时序预测法
- 论文思路
- 论文思路
- 车牌识别--提取HOG特征
- DataSnap Rest 服务器网络分配器返回格式定义
- 谈谈对Spring IOC的理解
- android 自定义控件自定义属性
- 【Y分钟内迅速学会python3系列】 python学习记录 (二)
- Prophet(预言者)facebook时序预测----论文总结以及调参思路
- 如何判断DataFrame中是否有缺失值?
- 凸包的形成(C++双向循环链表描述)
- POJ 1185
- C#Arraylist集合的方法
- mysql开发技巧2
- 使用 Java 测试网络连通性的几种方法
- 03-创建测试脚本框架
- 性能杀手—伪共享