时间序列预测实战(十八)利用Prophet实现长期预测(附代码+数据集+详细讲解)
一、本文介绍Prophet是一个用于时间序列预测的经单模型。这个工具特别适合于具有强季节性影响和多个历史数据季节的业务时间序列数据。Prophet的主要思想是将数据分解为如下三个部分趋势、季节性、节假日和特殊事件。这个模型非常适合于处理具有强烈季节性和趋势变化的业务时间序列数据(这里为什么适合的是业务数据呢是因为它考虑了节假日等特殊事件同时其面对数据中的缺失值和异常值时也能保持其性能)。Prophet通过这种方式可以有效地预测未来的趋势和模式。需要注意的是Prophet是一种介于机器学习和传统的时间序列预测方法中间的一种方法其中分解趋势、季节性这种属于是传统的方法但是其又可以自动拟合属于机器学习的方法。回顾内容时间序列专栏-包含上百种时间序列预测模型以及基础讲解适合各种人群预测类型长期预测、单元预测。预测效果图如下(未知数据)-目录一、本文介绍二、Prophet介绍2.1 Prophet的主要思想2.2 Prophet的优缺点三、数据集介绍四、参数讲解五、模型实战5.1 模型完整代码块5.2 模型训练和输出结果六、结果展示和分析六、全文总结二、Prophet介绍2.1 Prophet的主要思想Prophet的主要思想是提供一个灵活且易于使用的工具用于处理各种业务时间序列数据的预测。它基于一个加性模型其中非线性趋势与年度、周度和日度季节性模式结合还可以包括节假日效应。这个模型包括几个主要部分趋势模型它捕捉数据的长期趋势可以处理趋势的变化如趋势中的拐点。季节性模型识别并拟合数据的季节性模式如一周内或一年内的周期性变化。节假日组件用户可以指定影响模型的特定日期或事件如公共假期或特别活动。Prophet的目标是将这些复杂的时间序列分析技术变得更加易于理解和使用即使是对于非专业人士来说。下图为Prophet处理时间这一特征时其考虑时间的方法而且岂会将时间处理为不同的维度进行处理如下图所示分别为年月周日等多个维度。2.2 Prophet的优缺点Prophet的优点Prophet是一个由Facebook开发的开源工具用于时间序列预测。这个工具特别适合于具有强季节性影响和多个历史数据季节的业务时间序列数据。Prophet的主要有点包括1. 易于使用Prophet旨在为分析师和开发者提供一个简单、直观的接口使他们能够快速做出高质量的预测。2. 适应性强它可以自动检测时间序列数据的变化趋势和季节性模式甚至在存在缺失数据或历史数据的情况下也能进行有效的预测。3. 可定制用户可以调整模型来适应特定的业务需求比如通过添加节假日效应或者考虑特定的事件。4. 鲁棒性它对异常值和缺失数据具有良好的抵抗力能够生成准确的预测。总结Prophet在许多类型的时间序列数据上都表现出色特别是在处理日常、周末和年度节假日的影响方面具有独特优势。Prophet的缺点尽管如此Prophet也有其局限性它可能不适用于处理非常不规则或复杂的时间序列数据。此外Prophet在进行预测时可能需要大量的历史数据来识别模式。三、数据集介绍我们本文用到的数据集是官方的ETTh1.csv该数据集是一个用于时间序列预测的电力负荷数据集它是 ETTh 数据集系列中的一个。ETTh 数据集系列通常用于测试和评估时间序列预测模型。以下是ETTh1.csv数据集的一些内容数据内容该数据集通常包含有关电力系统的多种变量如电力负荷、价格、天气情况等。这些变量可以用于预测未来的电力需求或价格。时间范围和分辨率数据通常按小时或天记录涵盖了数月或数年的时间跨度。具体的时间范围和分辨率可能会根据数据集的版本而异。以下是该数据集的部分截图-​四、参数讲解Prophet模型提供了多个参数大家可以根据具体的数据集和业务需求调整模型。以下是这些参数及其接受的类型参数名称参数类型参数介绍1growth字符串指定增长模型通常是linear或logistic大家需要注意的是如果输入logistic则需要再输入数据中多加一个cap列表明你的数据可能的最大值否则会报错。2changepointsPython列表python列表指明数据什么时候会变化这个一般不用输入类似于某个特殊时间点。3n_changepoints整数自动选择的潜在趋势变化点的数量这两参数比较重要大家需要反复尝试4changepoint_range浮点数用于选择变化点的数据历史比例这两参数比较重要大家需要反复尝试5yearly_seasonality布尔值或整数年度季节性组件是否开启True自动计算按照一年来否则可以输入整数2、3年等。6weekly_seasonality布尔值或整数周季节性组件和上面同理7daily_seasonality布尔值或整数日季节性组件和上面同理8holidaysDataFrame包含假期信息的数据框9seasonality_prior_scale浮点数季节性组件的平滑度这个参数其实需要用一些交叉验证或者网格搜索进行求最优化。10holiday_prior_scale浮点数假期组件的平滑度这个参数其实需要用一些交叉验证或者网格搜索进行求最优化。11changepoint_prior_scale浮点数趋势变化点的灵敏度这个参数其实需要用一些交叉验证或者网格搜索进行求最优化。12mcmc_samples整数MCMC采样的数量13interval_width浮点数预测区间的宽度14uncertainty_samples整数不确定性估计的模拟抽样数量五、模型实战5.1 模型完整代码块下面的代码大家复制粘贴即可运行本文的模型Prophet用法十分简单只需要调用官方的接口既可以。import pandas as pd from matplotlib import pyplot as plt from prophet import Prophet from sklearn.metrics import mean_absolute_error, mean_squared_error pre_length 24 # 预测未来数据的长度我的数据是一小时一间隔24等于一天 df pd.read_csv(ETTh1.csv)[[date, OT]] # 因为我的数据有多列在这里我给这两列进行的单独提取出来 # 从数据的末尾提出来一部分数据用于后面的对比 train_df df[:len(df) - pre_length] test_df df[-pre_length:] # 这里需要将你的时间列和数据列进行重命名因为Prophet需要的两列名字固定是ds 和 y train_df.rename(columns{date: ds, OT: y}, inplaceTrue) test_df.rename(columns{date: ds, OT: y}, inplaceTrue) test_df.reset_index(dropTrue, inplaceTrue) # 初始化Prophet模型 model Prophet( yearly_seasonalityTrue, # 启用年度季节性 weekly_seasonalityTrue, # 启用周季节性 daily_seasonalityTrue, # 启用日季节性 changepoint_prior_scale0.5, # 调整趋势变化点的灵敏度 seasonality_prior_scale5.0, # 调整季节性组件的灵敏度 ) # 拟合模型 model.fit(train_df) # 创建未来日期的数据框这里假设我们预测未来1天 future model.make_future_dataframe(periodspre_length) # 进行预测 forecast model.predict(future).tail(pre_length) forecast.reset_index(inplaceTrue, dropTrue) # 将索引重新排序 # 展示预测结果 print(forecast[[ds, yhat, yhat_lower, yhat_upper]]) mae mean_absolute_error(test_df[y], forecast[yhat]) mse mean_squared_error(test_df[y], forecast[yhat]) print(预测值和真实值的MAE, mae) print(预测值和真实值的MSE, mse) # 设置主题 plt.style.use(ggplot) # 创建图表 fig, ax plt.subplots(figsize(10, 6)) # 绘制真实值 ax.plot(test_df[y], labelActual, colorblue) # 绘制预测值 ax.plot(forecast[yhat], labelForecast, colorcyan) # 绘制预测的不确定性范围上下界 ax.fill_between(range(pre_length), forecast[yhat_lower], forecast[yhat_upper], colorgrey, alpha0.5) # 设置标题和标签 ax.set_title(Prophet Forecast with Confidence Interval, fontsize16) ax.set_xlabel(Date, fontsize12) ax.set_ylabel(Value, fontsize12) # 添加图例 ax.legend() # 显示图表 plt.show()5.2 模型训练和输出结果当我们将上面的代码复制到一个py文件之后输入你的文件路径和要预测的数据周期之后我们可以进行训练控制台的输出如下图所示其中的前两行为模型拟合过程下面的结果为模型的预测输出结果其中yhat就是模型的预测值。​六、结果展示和分析下面的结果就是预测值和真实值的对比图我这里的数据是按照小时为间隔可以看到我这里预测了未来的24个时间点的数据也就是一天的数据效果还可以吧只能说这个模型主要就是用法简单官方以只提供接口省去了很多训练的麻烦。同时我们可以看到下面的MAE和MSE的结果在控制台输出如下-六、全文总结到此本文已经全部讲解完成了希望能够帮助到大家在这里也给大家推荐一些我其它的博客的时间序列实战案例讲解其中有数据分析的讲解就是我前面提到的如何设置参数的分析博客最后希望大家订阅我的专栏本专栏均分文章均分98并且免费阅读。回顾内容时间序列专栏-包含上百种时间序列预测模型以及基础讲解适合各种人群​​​

相关新闻

【ICLR 2023】时间序列预测实战Crossformer(附代码+数据集+详细讲解)

【ICLR 2023】时间序列预测实战Crossformer(附代码+数据集+详细讲解)

论文地址:官方论文地址 代码地址:官方代码地址 一、本文介绍 本篇文章给大家带来的实战讲解是Crossformer模型,其是一个针对多变量时间序列预测的新型深度学习模型,发表ICLR 2023上并且排名前5%,所以这个模型的质量还…

2026/8/4 20:12:03 阅读更多 →
LSLib终极指南:5步轻松制作《神界原罪》和《博德之门3》MOD

LSLib终极指南:5步轻松制作《神界原罪》和《博德之门3》MOD

LSLib终极指南:5步轻松制作《神界原罪》和《博德之门3》MOD 【免费下载链接】lslib Tools for manipulating Divinity Original Sin and Baldurs Gate 3 files 项目地址: https://gitcode.com/gh_mirrors/ls/lslib LSLib是一款专为《神界原罪》系列和《博德之…

2026/8/4 20:12:03 阅读更多 →
ansible安装部署及常用模块详解(超详细)

ansible安装部署及常用模块详解(超详细)

目录 前言 一、环境概况 修改主机名(可选项) 二、安装部署 1.安装epel扩展源 2.安装Ansible 3.修改Ansible的hosts文件 4.生成密钥 三、Ansible模块使用介绍 Command模块 Shell模块 User模块 Copy模块 File模块 Hostname模块 Yum模块 Se…

2026/8/4 20:11:03 阅读更多 →

最新新闻

审计自动化流水线怎么容错?重试、降级、人工兜底与异常队列的工程对比

审计自动化流水线怎么容错?重试、降级、人工兜底与异常队列的工程对比

一、批量跑 50 家,第 37 家挂了,怎么办 审计自动化真正上量之后,工程上的核心问题往往不是"能不能算对",而是出错之后怎么收场。 典型场景:年审高峰,一个批次跑 50 家子公司的底稿。跑到第 37 家…

2026/8/4 20:54:21 阅读更多 →
从闲置到专业:3步让创维E900V22C变身4K媒体中心的完整指南

从闲置到专业:3步让创维E900V22C变身4K媒体中心的完整指南

从闲置到专业:3步让创维E900V22C变身4K媒体中心的完整指南 【免费下载链接】e900v22c-CoreELEC Build CoreELEC for Skyworth e900v22c 项目地址: https://gitcode.com/gh_mirrors/e9/e900v22c-CoreELEC 你是否有一台闲置的创维E900V22C电视盒子,…

2026/8/4 20:54:21 阅读更多 →
审计科目怎么标准化?硬编码映射、映射表、模糊匹配与语义模型的工程对比

审计科目怎么标准化?硬编码映射、映射表、模糊匹配与语义模型的工程对比

一、科目标准化:审计数据工程里绕不开的一道坎 做审计数据自动化,起手要做的不是建模,是把一万家企业写法各异的科目表,映射到一套自己能算的标准科目体系上。 难点在于源头就没有统一: 同一个科目,A 公司叫…

2026/8/4 20:54:21 阅读更多 →
审小匠 vs 模板底稿:财审底稿自动编制评测(审定表与 Z 系列底稿)

审小匠 vs 模板底稿:财审底稿自动编制评测(审定表与 Z 系列底稿)

一、一套小微企业财审底稿,为什么要做两三天 小微企业年审,科目不多、业务不复杂,但该出的底稿一张都不能少:审定表、重分类、三张报表、往来明细、费用明细、抽凭底稿、现金流量表底稿、未分配利润底稿…… 传统流程大致是这样&a…

2026/8/4 20:54:21 阅读更多 →
GPT-5.6 Luna 降价 80% 坐实:开发者如何重画模型路由与账单

GPT-5.6 Luna 降价 80% 坐实:开发者如何重画模型路由与账单

GPT-5.6 Luna 降价 80% 坐实:开发者如何重画模型路由与账单面向后端 / Agent / 小团队技术负责人。2026-07-30 OpenAI 把 GPT-5.6 轻量档 Luna 打到 0.20/1.20(百万 Token),Terra 降到 2/12,Sol 不降但新增 Fast 模式&…

2026/8/4 20:54:20 阅读更多 →
Avogadro 2:化学分子的三维可视化终极指南,让复杂结构一目了然

Avogadro 2:化学分子的三维可视化终极指南,让复杂结构一目了然

Avogadro 2:化学分子的三维可视化终极指南,让复杂结构一目了然 【免费下载链接】avogadroapp Avogadro is an advanced molecular editor designed for cross-platform use in computational chemistry, molecular modeling, bioinformatics, materials …

2026/8/4 20:53:20 阅读更多 →

日新闻

AI Agent白手起家26: 使用标准事件驱动大模型实践

AI Agent白手起家26: 使用标准事件驱动大模型实践

纲要 练习目标:掌握大模型标准事件的调用回顾 LangChain 中的核心标准事件 invokestreambatchastream_eventswith_structured_output 环境准备实战代码:多种事件调用对比 同步调用与流式输出批量处理异步事件流监听结构化输出 运行说明与预期结果总结与扩…

2026/8/4 0:00:40 阅读更多 →
dealsea是什么?跨境卖家必知的美国deal站入门指南

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/4 0:01:40 阅读更多 →
清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

清华大学重磅EST:植物自导电闪蒸焦耳热600°C/2600°C两步法!稀土超积累植物秒级转化为CeO₂-石墨烯电催化剂!

通讯作者:邓兵、刘建国通讯单位:清华大学DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清洁能源技术与电子器件不可或缺的核心原料,然而传统提取方式依赖能耗高、排放大的采矿与强…

2026/8/4 0:01:40 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/4 13:24:41 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/4 11:41:39 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/4 5:26:40 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →