Prophet学习(一) Python API实现

article/2025/9/20 4:09:28

目录

 Python API

详细介绍

完整代码:


 Python API

详细介绍

Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。

Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想情况下YYYY-MM-DD表示日期,YYYY-MM-DD HH:MM:SS表示时间戳。y列必须是数字,并表示我们希望预测的测量值。

举个例子,让我们看一下Peyton Manning的维基百科页面每日访问量的时间序列。我们抓取这些数据Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。

Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想情况下YYYY-MM-DD表示日期,YYYY-MM-DD HH:MM:SS表示时间戳。y列必须是数字,并表示我们希望预测的测量值。

举个例子,让我们看一下Peyton Manning的维基百科页面每日访问量的时间序列。佩顿·曼宁(Peyton Manning)提供了一个很好的例子,因为它说明了Prophet的一些特征,比如多季节性、变化的生长速度,以及模拟特殊日子的能力(比如曼宁的季后赛和超级碗出场)。CSV可以在这里找到。

首先,我们将导入数据:使用r中的Wikipediatrend包,Peyton Manning提供了一个很好的例子,因为它说明了Prophet的一些特性,比如多季节性,变化的生长速率,以及模拟特殊日子的能力(比如Manning的季后赛和超级碗出场)。CSV可以在这里找到。

首先我们导入数据:

# Python
import pandas as pd
from prophet import Prophet
# Python
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')
df.head()

                                          

我们通过实例化一个新的Prophet对象来拟合模型。对预测过程的任何设置都传递给构造函数。然后调用它的fit方法并传入历史数据框架。安装需要1-5秒。

# Python
m = Prophet()
m.fit(df)

然后在数据帧上进行预测,其中ds列包含要进行预测的日期。您可以使用帮助方法Prophet.make_future_dataframe获得一个合适的数据帧,它将扩展到指定天数的未来。默认情况下,它还将包括历史记录中的日期,因此我们将看到模型也适合。

# Python
future = m.make_future_dataframe(periods=365)
future.tail()

                                            

predict方法将为未来的每一行分配一个预测值,并将其命名为yhat。如果传入历史日期,它将提供样本内拟合。这里的预测对象是一个新的数据框架,它包括一个包含预测的列,以及用于组件和不确定性区间的列。

# Python
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

           

你可以打电话给先知来预测天气。绘制方法和传入您的预测数据框架。

# Python
fig1 = m.plot(forecast)

如果您想查看预测组件,可以使用Prophet.plot_components方法。默认情况下,您将看到时间序列的趋势、年度季节性和每周季节性。如果算上假期,你也会在这里看到。

# Python
fig2 = m.plot_components(forecast)

   

一个交互式的预测图和组件可以创建与plot。您需要单独安装plotly 4.0或以上版本,因为默认情况下它不会与prophet一起安装。您还需要安装notebook和ipywidgets包

# Python
from prophet.plot import plot_plotly, plot_components_plotlyplot_plotly(m, forecast)
# Python
plot_components_plotly(m, forecast)

关于每个方法可用选项的更多详细信息可以在文档字符串中找到,例如通过help(Prophet)或help(Prophet.fit)。CRAN上的R参考手册提供了所有可用函数的简明列表,每个函数都有一个Python等效函数。

完整代码:

# Python
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
# Python
df = pd.read_csv('example_wp_log_peyton_manning.csv')
df.head()
print(df.head())
# Python
m = Prophet()
m.fit(df)
# print(m.fit(df))
# Python
future = m.make_future_dataframe(periods=365)
future.tail()
# print(future.tail())# Python
forecast = m.predict(future)
T = forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
# print(T)
# Python
fig1 = m.plot(forecast)# print(fig1)# Python
fig2 = m.plot_components(forecast)# print(fig2)
# Python
from prophet.plot import plot_plotly, plot_components_plotlyplot_plotly(m, forecast)
plt.show()
# print(S)# Python
plot_components_plotly(m, forecast)plt.show()

参考: 

【1】prophet官网Quick Start | Prophet (facebook.github.io)


http://chatgpt.dhexx.cn/article/9tYCvdgc.shtml

相关文章

Prophet时间序列

Prophet参数介绍 growth:趋势函数-默认是线性趋势(linear),还可以选非线性(logistic). changepoints:突变点-默认是none,可以手动选择,如6-18节日有活动,就可以指点突变点在6-18。 n_changepoints:突变点个数-若未指定&#xff0c…

Windows下安装Python版本的prophet

prophet是Facebook开源的一款时序预测的工具。地址。 在Mac和linux下比较好安装,在Windows下安装就比较坑了。所以,记录以下自己安装成功的过程。 我的环境是win10 64位,python 3.6.1 第一步:安装PyStan fbprophet依赖于PyStan…

【关于时间序列的ML】项目 8 :使用 Facebook Prophet 模型预测股票价格

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

Prophet调参

本篇主要讲解实际运用中Prophet调参的主要步骤以及一些本人实际经验。 一 参数理解篇 class Prophet(object):def __init__(self,growthlinear,changepointsNone,n_changepoints25,changepoint_range0.8,yearly_seasonalityauto,weekly_seasonalityauto,daily_seasonalityaut…

Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 Prophet由facebook开源的基于python和R语言的数据预测工具,基于时间和变量值结合时间序列分…

结合 Prophet 的原理理解 Prophet 的使用

结合 Prophet 的原理理解 Prophet 的使用 前言 本文也是时序领域工作学习过程中的一些学习笔记,将会结合 Prophet 的原理,讲一讲如何成为一个合格的 Prophet 调包侠 使用者。如果有任何理解不到位的地方,请多多指正。 Why Prophet? Prop…

大白话Prophet模型以及简单的应用(一)

Prophet 是基于加法模型预测时间序列数据。适合于具有季节性影响的时间序列和具有多个季节的历史数据。Prophet对数据中的异常值和缺失值以及趋势的强烈变化有着较好的鲁棒性(耐操性),所以通常情况下都不需要对数据进行处理。 优点&#xff1…

Prophet算法

Prophet简介 Prophet是FaceBook公司在2017年开源的一款时间序列建模工具。Prophet的方法是将时间序列看成是关于t的一个函数,用你和函数曲线的方法进行预测,所以这和传统的时间序列模型有本质上的区别,他更倾向于机器学习的建模方式。 Prop…

时间序列模型Prophet使用详细讲解

之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet。详细见这里。 接下来的几个部分,我们说下如何使用Prophet,以此来体验下Prophet的丰富内容。内容会比较多,主要翻译自官方文档。教程中使用的数据集可在 Prophet 的 github 主…

Prophet拟合模型入门学习

先展示效果: Facebook 时间序列预测算法 Prophet 的研究 Prophet 简介 Facebook 去年开源了一个时间序列预测的算法,叫做 fbprophet,它的官方网址与基本介绍来自于以下几个网站: Github:https://github.com/facebo…

时间序列预测——Prophet模型

文章链接: 时间序列预测——ARIMA模型https://blog.csdn.net/beiye_/article/details/123317316?spm1001.2014.3001.5502 1、Propht模型概述 Prophet模型是Facebook于2017年发布开源的时间序列预测框架。Prophet适用于各种具有潜在特殊特征的预测问题包括广泛的业…

Prophet 时间序列预测框架入门实践笔记

1. Prophet时间序列预测框架概述 Prophet是Facebook开源的一种时间序列预测框架,旨在使时间序列分析更加容易和快速。Prophet可以处理具有多个季节性和突发事件的时间序列数据,并且在数据缺失或异常情况下仍然能够进行良好的预测。Prophet采用了一种基于…

Prophet的原理知识

目录 1、Prophet 简介 2、Prophet 适用场景 3、Prophet 算法的输入输出 4、Prophet 算法原理 5、Prophet 使用时可设置的参数 6、Prophet 学习资料参考 7、Prophet 模型应用 7.0 背景描述7.1 导入数据7.2 拟合模型7.3 预测(使用默认参数)7.4 趋势…

Prophet:一种大规模时间序列预测模型

前言 Prophet是由facebook开发的开源时间序列预测程序,擅长处理具有季节性特征大规模商业时间序列数据。本文主要介绍了Prophet模型的设计原理,并与经典的时间序列模型ARIMA进行了对比。 1. Prophet模型原理 Prophet模型把一个时间序列看做由3种主要成分…

Prophet模型的简介以及案例分析

目录 前言一、Prophet安装以及简介二、适用场景三、算法的输入输出四、算法原理五、使用时可以设置的参数六、学习资料参考七、模型应用7-1、股票收盘价格预测7-1-1、导入相关库7-1-2、读取数据7-1-3、数据预处理以及进行训练集和测试集的划分。7-1-4、实例化Prophet对象&#…

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

时序预测工具库(Prophet) 一、Prophet 简介二、Prophet 适用场景三、Prophet 算法的输入输出四、Prophet 算法原理五、与机器学习算法的对比六、代码6.1 依赖安装6.2 预测demo6.3 效果图 七、参考资料八、官方链接:九、案例链接: …

图的顺序存储及其深度优先遍历和广度优先遍历

图的基本概念 在线性表中,数据元素之间是被串起来的,仅有线性关系,每个数据元素只有一个直接前驱和一个直接后继。在树形结构中,数据元素之间有着明显的层次关系,并且每一层上的数据元素可能和下一层中多个元素相关&am…

算法模板-深度优先遍历

简介 深度优先遍历,顾名思义对于树或者图中的某个节点,尽可能往一个方向深入搜索下去。具体而言,从某个节点v出发开始进行搜索,不断搜索直到该节点的所有边都被遍历完。对于很多树、图和矩阵地搜索问题,深度优先遍历是…

图的深度优先遍历java代码详解

代码是根据矩阵来实现深度优先遍历的 邻接结点就是按照vertex中的顺序来一个一个来找的 if(edges[i][j]>0&&!isVisited[j]) { return j; } 就很好的说明了 如果没找到就return -1 回到dfs(i)这一层 再retur…

图(深度优先遍历、广度优先遍历)

文章目录 一、图的概述1.1 什么是图1.2 图对比线性表和树1.3 图的常见概念 二、图的存储方式2.1 邻接矩阵2.2 邻接表 三、图的遍历3.1 图的深度优先遍历3.1.1 什么是深度优先遍历3.1.2 深度优先遍历的步骤3.1.3 深度优先遍历代码实现 3.2 图的广度优先遍历3.2.1 什么是广度优先…