• Prophet是比较简单易用的,对于非时序预测和机器学习领域专家的是非常容易上手的。其参数大多数都是非常直观的参数。(Prophet的python包大量使用了pandas库,所以使用python做开发的需要首先了解pandas的使用。)

  • Prophet也是一种约定优于配置的思想,写代码只需要按照约定的套路定义好pandas中的dataframe就可以轻松进行预测。

  • 下面我们来进行一个官方网站提供的Quick Start来进行学习了解。

import pandas as pd
import numpy as np
from fbprophet import Prophet
import 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构建有效的预测模型。

    1. 首先我们去除数据中的异常点(outlier),直接赋值为none就可以,因为Prophet的设计中可以通过插值处理缺失值,但是对异常值比较敏感。
    2. 选择趋势模型,默认使用分段线性的趋势,但是如果认为模型的趋势是按照log函数方式增长的,可设置growth='logistic'从而使用分段log的增长方式
    3. 设置趋势转折点(changepoint),如果我们知道时间序列的趋势会在某些位置发现转变,可以进行人工设置,比如某一天有新产品上线会影响我们的走势,我们可以将这个时刻设置为转折点。
    4. 设置周期性,模型默认是带有年和星期以及天的周期性,其他月、小时的周期性需要自己根据数据的特征进行设置,或者设置将年和星期等周期关闭。
    5. 设置节假日特征,如果我们的数据存在节假日的突增或者突降,我们可以设置holiday参数来进行调节,可以设置不同的holiday,例如五一一种,国庆一种,影响大小不一样,时间段也不一样。
    6. 此时可以简单的进行作图观察,然后可以根据经验继续调节上述模型参数,同时根据模型是否过拟合以及对什么成分过拟合,我们可以对应调节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

Prophet(预言者)facebook时序预测----论文总结以及调参思路相关推荐

  1. 数据挖掘-二手车价格预测 Task04:建模调参

    数据挖掘-二手车价格预测 Task04:建模调参 模型调参部分 利用xgb进行五折交叉验证查看模型的参数效果 ## xgb-Model xgr = xgb.XGBRegressor(n_estimat ...

  2. 零基础入门金融风控-贷款违约预测-Task4 建模与调参

    此部分为零基础入门金融风控的 Task4 建模调参部分,带你来了解各种模型以及模型的评价和调参策略,欢迎大家后续多多交流. 项目地址 比赛地址 4.1 学习目标 学习在金融分控领域常用的机器学习模型 ...

  3. 天池大赛-心跳信号分类预测:建模与调参

    比赛地址:零基础入门数据挖掘-心跳信号分类预测 参考资料:由DataWhale开源的学习资料 1 内容介绍 逻辑回归模型: 理解逻辑回归模型: 逻辑回归模型的应用: 逻辑回归的优缺点: 树模型: 理解 ...

  4. 客户逾期贷款预测[6] - 网格搜索调参和交叉验证

    任务 使用网格搜索对模型进行调优并采用五折交叉验证的方式进行模型评估 实现 之前已经进行过数据探索,缺失值和异常值处理.特征生成.特征删除.缩放等处理,具体可见前几篇博客.本文只进行带交叉验证的网格搜 ...

  5. 机器学习sklearn实战-----随机森林调参乳腺癌分类预测

    机器学习sklearn随机森林乳腺癌分类预测 机器学习中调参的基本思想: 1)非常正确的调参思路和方法 2)对模型评估指标有深入理解 3)对数据的感觉和经验 文章目录 机器学习sklearn随机森林乳 ...

  6. 时序预测工具库(Prophet)介绍+代码

    时序预测工具库(Prophet) 一.Prophet 简介 二.Prophet 适用场景 三.Prophet 算法的输入输出 四.Prophet 算法原理 五.与机器学习算法的对比 六.代码 6.1 ...

  7. 详解NLP和时序预测的相似性【附赠AAAI21最佳论文INFORMER的详细解析】

    摘要:本文主要分析自然语言处理和时序预测的相似性,并介绍Informer的创新点. 前言 时序预测模型无外乎RNN(LSTM, GRU)以及现在非常火的Transformer.这些时序神经网络模型的主 ...

  8. 时序分析 26 - 时序预测 Prophet包初探

    时序分析 26 时序预测 - Prophet包初探 前言 在本系列前面的文章中,我们介绍了多种时序预测技术和模型.我们可以看出时序预测技术还是非常复杂的,步骤也比较繁琐.读者可能还记得VAR模型的步骤 ...

  9. Facebook如何预测广告点击:剖析经典论文GBDT+LR

    作者 | 梁唐 来源 | TechFlow 今天我们来剖析一篇经典的论文:Practial Lessons from Predicting Clicks on Ads at Facebook.从这篇p ...

  10. 时序预测:从两篇高影响力的论文谈起

    未来可以预测吗? 本文从两篇高影响力的时序预测文章谈起,其中一篇是18年放在arXiv上的文章,文中总结性地提出了时序卷积网络(TCN: Temporal Convolutional Network) ...

最新文章

  1. 生命或可在星际间传播
  2. 关于数据中心基础架构管理
  3. 浅谈企业MES与ERP系统集成
  4. python画图保存网页_一起学Python数据分析——引言
  5. php 并发控制中的独占锁
  6. CB Loss:基于有效样本的类别不平衡损失
  7. Tomcat加载类机制 - 我们到底能走多远系列(14)
  8. stdafx.h作用以及include中为何iostream必须放在stdafx.h之后?
  9. 固态硬盘用软件测试掉速严重,SSD固态硬盘掉速怎么办?手动执行TRIM指令缓解固态硬盘掉速方法...
  10. 数学建模遗传算法Matlab
  11. 软件工程 选课系统的uml类图_UML学生选课系统.doc
  12. 来 看 T r i e 吧
  13. PHP 留言板功能需求分析
  14. 研发管理心得,从技术小白做到CTO(研发总监)的辛酸之路
  15. Arduino与LU-ASR01语音识别模块的双向串口通信实现
  16. 沪江网校前端架构漫谈
  17. 小学数学测试软件报告,第二学小学数学期末测试质量分析报告
  18. 腾讯云服务器java搭建教程_腾讯云服务器搭建
  19. 能把百度玩出花样的人肯定不简单,分享几个鲜为人知的搜索引擎高级语法
  20. 基于S905L智能机顶盒打造一台Linux生产力办公主机

热门文章

  1. 实时数仓和离线数仓的概念
  2. oracle中连续天数计算,Oracle计算连续天数,计算连续时间,Oracle连续天数统计
  3. 探究空心超顺磁性四氧化三铁纳米微粒的制备方法-瑞禧
  4. 【深入理解多线程】 Moniter的实现原理(四)
  5. SpringBoot使用之yaml配置注入(推荐使用)
  6. 剑指offer20题——leetcode主站65题
  7. python基础螺旋线
  8. echarts水球图-动态波纹百分比数据显示
  9. 在努力的途中 忤逆满路荆棘
  10. java osm pbf_OSM数据的下载和转换使用