当前位置: 首页 > news >正文

滨州制作网站深圳优化公司

滨州制作网站,深圳优化公司,购物网站的前台功能,wordpress水印图片插件文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 Prophet 是一种基于加法模型的时间序列数据预测程序,在该模型中,非线性趋势与年、周、日季节性以及节假日效应相匹配。…

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。

Facebook Prophet
Prophet 是一种基于加法模型的时间序列数据预测程序,在该模型中,非线性趋势与年、周、日季节性以及节假日效应相匹配。它最适用于具有强烈季节效应和多季历史数据的时间序列。先知对缺失数据和趋势变化具有很强的鲁棒性,通常能很好地处理异常值。

Prophet 是 Facebook 核心数据科学团队发布的开源软件。

快速开始

Python API

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

Prophet 的输入总是一个包含两列的数据框:dsyds(日期戳)列应为 Pandas 期望的格式,理想情况下是日期的 YYYY-MM-DD 或时间戳的 YYYY-MM-DD HH:MM:SSy 列必须是数值型,表示我们希望预测的测量值。

举个例子,我们来看 Peyton Manning 维基百科页面的每日浏览量的对数时间序列。我们使用 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()
DSY
02007-12-109.590761
12007-12-118.519590
22007-12-128.183677
32007-12-138.072467
42007-12-147.893572

我们通过实例化一个新的 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()
DS
32652017-01-15
32662017-01-16
32672017-01-17
32682017-01-18
32692017-01-19

predict 方法将为 future 中的每一行分配一个预测值,该值被命名为 yhat。如果您传入历史日期,它将提供样本内拟合。这里的 forecast 对象是一个新的数据框,包括带有预测的 yhat 列,以及组件和不确定性区间的列。

# Python
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
DSYHATYHAT_LOWERYHAT_UPPER
32652017-01-158.2126257.4563108.959726
32662017-01-168.5376357.8429869.290934
32672017-01-178.3250717.6008799.072006
32682017-01-188.1577237.5120528.924022
32692017-01-198.1696777.4124738.946977

您可以通过调用 Prophet.plot 方法并传入预测数据框来绘制预测图。

# Python
fig1 = m.plot(forecast)

img

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

# Python
fig2 = m.plot_components(forecast)

img

可以使用 plotly 创建预测和组件的交互式图表。您需要单独安装 plotly 4.0 或更高版本,因为它不会默认随 prophet 安装。您还需要安装 notebookipywidgets 包。

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

每个方法可用选项的更多详细信息可在文档字符串中找到,例如,通过 help(Prophet)help(Prophet.fit)

R API

在 R 中,我们使用常规的模型拟合 API。我们提供了一个执行拟合并返回模型对象的 prophet 函数。然后您可以在此模型对象上调用 predictplot

# R
library(prophet)
R[write to console]: Loading required package: RcppR[write to console]: Loading required package: rlang

首先,我们读取数据并创建结果变量。与 Python API 一样,这是一个具有 dsy 列的数据框,分别包含日期和数值。ds 列应为日期的 YYYY-MM-DD 或时间戳的 YYYY-MM-DD HH:MM:SS。如上所述,我们在这里使用 Peyton Manning 维基百科页面的对数浏览量,可在此处获取。

# R
df <- read.csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')

我们调用 prophet 函数来拟合模型。第一个参数是历史数据框。其他参数控制 Prophet 如何拟合数据,并在本文档的后续页面中描述。

# R
m <- prophet(df)

预测是在具有包含待预测日期的 ds 列的数据框上进行的。make_future_dataframe 函数接受模型对象和要预测的周期数,并生成一个合适的数据框。默认情况下,它还将包括历史日期,以便我们可以评估样本内拟合。

# R
future <- make_future_dataframe(m, periods = 365)
tail(future)
             ds
3265 2017-01-14
3266 2017-01-15
3267 2017-01-16
3268 2017-01-17
3269 2017-01-18
3270 2017-01-19

与 R 中的大多数建模过程一样,我们使用通用的 predict 函数来获取我们的预测。forecast 对象是一个包含预测值 yhat 列的数据框。它具有用于不确定性区间和季节性组件的附加列。

# R
forecast <- predict(m, future)
tail(forecast[c('ds', 'yhat', 'yhat_lower', 'yhat_upper')])
             ds     yhat yhat_lower yhat_upper
3265 2017-01-14 7.818359   7.071228   8.550957
3266 2017-01-15 8.200125   7.475725   8.869495
3267 2017-01-16 8.525104   7.747071   9.226915
3268 2017-01-17 8.312482   7.551904   9.046774
3269 2017-01-18 8.145098   7.390770   8.863692
3270 2017-01-19 8.156964   7.381716   8.866507

您可以使用通用的 plot 函数通过传入模型和预测数据框来绘制预测图。

# R
plot(m, forecast)

img

您可以使用 prophet_plot_components 函数将预测分解为趋势、周季节性和年度季节性。

# R
prophet_plot_components(m, forecast)

img

可以使用命令 dyplot.prophet(m, forecast) 使用 Dygraphs 创建预测的交互式图表。

每个方法可用选项的更多详细信息可在文档字符串中找到,例如,通过 ?prophet?fit.prophet。该文档也可在 CRAN 上的参考手册中找到。

风险提示与免责声明
本文内容基于公开信息研究整理,不构成任何形式的投资建议。历史表现不应作为未来收益保证,市场存在不可预见的波动风险。投资者需结合自身财务状况及风险承受能力独立决策,并自行承担交易结果。作者及发布方不对任何依据本文操作导致的损失承担法律责任。市场有风险,投资须谨慎。

http://www.dtcms.com/a/581865.html

相关文章:

  • mysql第四次做业
  • clusterProfile包用于宏基因组学富集分析
  • 湖北网站开发培训写一篇软文多少钱
  • python+django/flask基于协同过滤算法的理财产品推荐系统
  • h5个网站的区别某颜值女主播低俗内容流出视频
  • 做网站600房产管理局官网查询入口
  • 品牌网站建设要选磐石网络安阳县
  • 深圳企业网站托管长春专业网站建设模板
  • 陕煤建设集团韩城分公司网站免费的效果图设计软件
  • Web APIs 入门到实战(day5):解决数据丢失痛点——JS 本地存储 + BOM 操作实战案例(实现数据持久化学生就业表)
  • 本地前端独立开发(后端未启动)登录解决方案
  • HTML<output>标签
  • 淘宝客建网站要钱的吗房产信息网站模板
  • 山东省住房建设厅网站首页宝宝身上出现很多小红疹怎么办
  • 环境配置|GPUStack——为大模型而生的开源GPU集群管理器
  • 【 IDEA2022转移C盘.IntelliJIdea索引文件】
  • 广州现在哪个区不能去落实20条优化措施
  • MVC 数据库
  • 抚州哪里有做企业网站的公司电子商务网站建设外包服务的企业
  • Oracle 19C实测:重命名分区表后又重命名分区索引,分区索引会失效吗?DBA必看避坑指南!
  • 网页设计网站建设流程平面设计师上的网站
  • 和网站用户体验相关的文章抖音代运营服务合同
  • 如何解决VMware虚拟机中Linux系统终端不显示ens33 inet IP地址的问题
  • 大酒店网站源代码信用信息公示网官网
  • 广告模板在哪个网站好自媒体seo是什么意思
  • 关于打不开pycharm的解决方法(一)
  • SQL RIGHT JOIN:深入解析及实例应用
  • 深圳附近建站公司网站建设工具公司
  • Fastapi 进阶二:Fastapi中间件
  • 力扣540. 有序数组中的单一元素