例子代码

https://github.com/lilihongjava/prophet_demo/tree/master/outliers

# encoding: utf-8
"""
@author: lee
@time: 2019/8/8 9:35
@file: main.py
@desc:
"""
from fbprophet import Prophet
import pandas as pddef main():df = pd.read_csv('./data/example_wp_log_R_outliers1.csv')m = Prophet()m.fit(df)future = m.make_future_dataframe(periods=1096)forecast = m.predict(future)fig = m.plot(forecast)fig.show()df.loc[(df['ds'] > '2010-01-01') & (df['ds'] < '2011-01-01'), 'y'] = Nonemodel = Prophet().fit(df)fig = model.plot(model.predict(future))fig.show()df = pd.read_csv('./data/example_wp_log_R_outliers2.csv')m = Prophet()m.fit(df)future = m.make_future_dataframe(periods=1096)forecast = m.predict(future)fig = m.plot(forecast)fig.show()df.loc[(df['ds'] > '2015-06-01') & (df['ds'] < '2015-06-30'), 'y'] = Nonem = Prophet().fit(df)fig = m.plot(m.predict(future))fig.show()if __name__ == "__main__":main()

异常值有两种主要方式可以影响prophet的预测。以下,我们对之前例子中记录维基百科中R语言页面访问数的数据进行预测,但是我们造了一段问题数据(2010-01到2010-05都是5,2010-06到2011-01都是8,2010-06-01为6.76272950693188):

df = pd.read_csv('./data/example_wp_log_R_outliers1.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=1096)
forecast = m.predict(future)
fig = m.plot(forecast)

趋势预测看似合理,但不确定性区间似乎过于宽泛。Prophet能够处理历史数据中的异常值,但只能通过趋势变化来拟合它们。不确定性模型预计未来趋势变化的幅度与历史是相似的。

处理异常值的最佳方法是删除它们 - prophet对丢失数据是不影响的。如果将历史数据的值设置NA为但在future里保留对应的日期,则Prophet将能提供其值的预测。

df.loc[(df['ds'] > '2010-01-01') & (df['ds'] < '2011-01-01'), 'y'] = None
model = Prophet().fit(df)
fig = model.plot(model.predict(future))

在上面的例子中,异常值扰乱了不确定性估计,但没有影响预测值yhat。情况并非总是如此,例如在以下示例中添加了异常值:

df = pd.read_csv('./data/example_wp_log_R_outliers2.csv')
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=1096)
forecast = m.predict(future)
fig = m.plot(forecast)

此例中,在2015年6月造了一组极端异常值的数据来扰乱季节性估计,因此它们将影响到预测的值。和上个例子一样,正确的方法是删除它们:

df.loc[(df['ds'] > '2015-06-01') & (df['ds'] < '2015-06-30'), 'y'] = None
m = Prophet().fit(df)
fig = m.plot(m.predict(future))

参考资料:

https://facebook.github.io/prophet/docs/outliers.html

prophet outliers异常值相关推荐

  1. 【数据分析】利用机器学习算法进行预测分析(五):Prophet

    时间序列预测中的机器学习方法(五):Prophet 本文是"时间序列预测中的机器学习方法"系列文章的第五篇,如果您有兴趣,可以先阅读前面的文章: [数据分析]利用机器学习算法进行预 ...

  2. ML之prophet:prophet的简介、安装、使用方法之详细攻略

    ML之prophet:prophet的简介.安装.使用方法之详细攻略 目录 prophet的简介 1.四大特点 prophet的安装 prophet的使用方法 1.基础案例 2.进阶案例 ML之pro ...

  3. 【机器学习基础】范数与正则化

    前言 本文讨论了机器学习中正则化这个话题,对于L1正则项为什么稀疏也是面试中经常涉及的. 概要 正则化是机器学习中防止过拟合的一种重要技术.从数学上讲,它增加了一个正则化项,以防止系数如此完美地拟合而 ...

  4. 神经网络的损失函数讲解

    在应用python进行神经网络训练时,我们需要提供神经网络.如Keras中, 定义:在深度学习中.损失函数是用来衡量一组参数好坏的函数,其衡量方式是比较网络输出和真实输出的差异. 损失函数有很多别名: ...

  5. Mathematics English Vocabulary (Cited)

    一般词汇 数学 mathematics, maths(BrE), math(AmE) 公理 axiom 定理 theorem 计算 calculation 运算 operation 证明 prove ...

  6. 案例——中国篮球运动员的基本信息分析

    案例--中国篮球运动员的基本信息分析 分析目标 1.计算中国男篮.女篮运动员的平均身高与平均体重 2.分析中国篮球运动员的年龄分布 3.计算中国篮球运动员的体质指数 数据获取 先导入可能需要用到的包 ...

  7. 遥感相关专业英语词汇汇总

    对网络上英语专业词汇进行汇总整理,如下表: 序号 英语基础词汇 摄影测量与遥感专业英语词汇 英语基础词汇 英语基础词汇-生态环境与遥感 1 Absorbed photosynthetically ac ...

  8. QCustomPlot之盒须图(十六)

    盒须图的组成如下图所示: 在QCustomPlot中创建一个盒须图所需的类:QCPStatisticalBox,为盒须图添加数据主要使用的是addData接口,接口定义如下: void addData ...

  9. PMML 预测模型教程

    mark一下,感谢作者分享! https://blog.csdn.net/wxk_1127/article/details/79797299 什么是PMML PMML 是一种基于XML的标准语言,用于 ...

  10. 大数据常见英文词汇(二)(待续)

    大数据常见英文词汇(二)(待续) 以下单词是本人在学习大数据过程中遇到的生疏单词词汇.单词均在百度翻译中得到的释义,可能有失偏颇,望读者指正! 原文 译文 ACK 确认.命令正确应答 Advanced ...

最新文章

  1. Qt中文手册 之 QTreeWidget
  2. 结合脑成像技术与人工智能,破除自杀的“诅咒”
  3. containerd 与安全沙箱的 Kubernetes 初体验
  4. sparklines图表
  5. nginx与apache详细性能对比
  6. 连接CPU和计算机的总线,什么是计算机总线 总线和接口的区别
  7. Java容器的遍历之增强for循环
  8. ztree 标准得json数据格式_酷站推荐 - json-c.github.io/json-c - json-c API
  9. groovy 对 list 排序
  10. Atitit mysql存储过程编写指南 1. 定义变量 1 1.1. 变量名以@开头用户变量 会话变量 1 1.2. 以declare关键字声明 存储过程变量 2 1.3. @是用户自定义变量,
  11. wifi控制基于STM32与NFC的万能红外遥控器—毕业设计(1)
  12. Python爬取58同城租房数据,破解字体加密
  13. IEEE Access 算法 伪代码排版出错
  14. 【.csv数据预处理实战】pandas 驾驶参数选取
  15. 登录网络计算机提示用户名错误,局域网访问共享时提示登录失败:未知的用户名或错误密码 怎么回事...
  16. 我这样写python代码表白泡到了我的女神师姐
  17. 一次迭代式开发的研究:一个迭代式项目计划
  18. linux bash 漏洞修复方法
  19. JS18-解决案例中this、for、for...in的问题
  20. CS231n 02 Loss Functions and Optimization

热门文章

  1. 车载以太网交换机功能和应用案例汇总, 适用于AVB/TSN, 802.1AS(gPTP时钟同步)
  2. lempel ziv matlab,精讲Lempel-Ziv压缩算法
  3. 导入本体到Jena TDB数据库
  4. Uploadifive上传
  5. Ozone Block Chunk文件的layout方式
  6. python伪装ip_Python爬虫:使用IP代理池伪装你的IP地址继续爬
  7. USB之:MTKUSB软件框架及其MassStorage Class规范学习
  8. workman用户组
  9. 【HC-SR501人体红外传感器】
  10. Android开发之殇