时间序列预测——Prophet模型

article/2025/9/20 5:19:14

文章链接:

                        时间序列预测——ARIMA模型https://blog.csdn.net/beiye_/article/details/123317316?spm=1001.2014.3001.5502

1、Propht模型概述

Prophet模型是Facebook于2017年发布开源的时间序列预测框架。Prophet适用于各种具有潜在特殊特征的预测问题包括广泛的业务时间序列问题,并且其对时间序列趋势变化点的检测季节性节假日以及突发事件具有更好的拟合效果。

Prophet模型内部由循环中的分析师与自动化两部分构成一个循环体系。Prophet的预测过程是根据预测问题建立时间序列模型,对历史数据进行仿真,评估模型的效果,根据出现的问题,进一步进行调整和建模,最终以可视化方式反馈整个预测结果。

Prophet模型循环结构图

Prophet模型是一个加法回归模型,它由三个核心部分trend(趋势项)seasonality(季节项)holidays(假期项)构成。

Prophet模型基本组成公式:y(t)=g(t)+s(t)+h(t)+εt

2、Prophet的算法原理

常见的时间序列场景

黑色表示原始的时间序列散点;深蓝色的线表示使用时间序列来拟合所得到的取值;浅蓝色的线表示时间序列的一个置信区间,也就是所谓的合理的上界和下界。

prophet工作机制:

  1. 输入已知的时间序列的时间戳和相应的值
  2. 输入需要预测的时间序列的长度
  3. 输出未来的时间序列走势
  4. 输出结果可以提供必要的统计指针,包括拟合曲线、上界、下界等

prophet所需时间序列的存储格式:

只需要用CSV文件存储两列,第一列为时间序列的时间戳(ds),第二列为时间序列的取值(y)。

prophet所需时间序列的存储格式

通过prophet的计算,可以计算出时间序列的预测值(yhat)、预测值的下界(yhat_lower)、预测值的上界(yhat_upper)。

 

prophet的计算结果

Prophet预测结果

深色线拟合了黑色圆点所代表的实际值,并且给出了未来6个月的预测值,浅色区域表示了预测的合理范围yhat upperyhat lower

3、Prophet的算法实现

在时间序列分析领域,有一种常见的分析方法叫做时间序列的分解(Decomposition of Time Series,它把时间序列分成几个部分,分别是季节项,趋势项,剩余项

 加法形式:

乘法形式: 

Prophet基于这种方法进行了必要的改进和优化。在实际生活和生产环节中,除了季节项趋势项剩余项之外,通常还有节假日的效应。所以,在Prophet算法中,作者同时考虑了以上四项,即:

g(t)表示趋势项,表示时间序列在非周期上面的变化趋势;

s(t)表示周期项,或者称为季节项,一般以周者年为单位;

h(t)表示节假日项,表示在当天是否存在节假日;

表示误差项或者称为剩余项;

Prophet算法就是通过拟合这几项,最后把它们累加起来就得到时间序列的预测值。

4、趋势项g(t)

趋势项是Prophet的核心组件,它用于分析和拟合时间序列的非周期变化,提供了两种趋势模型:饱和增长模型分段线性模型

饱和增长模型不是无限上涨趋势的,当趋势达到一定的程度就会呈现饱和状态,饱和值随着时间动态变化;分段线性模型是不可限定趋势的,但是这两种模型都包含了不同程度的假设和调节光滑度的参数,以辅助优化模型。

饱和增长趋势函数公式:

分段线性趋势函数公式:

其中:v表示模型承载量;r表示增长率;δ、γ表示适应度;a(t)表示t时刻前突变点发生变化的次数;d表示偏移量。

5、季节项s(t)

s(t)代表时间序列的周期性变化,可用于模拟周、月、年等各种周期变化趋势,由傅立叶级数表达,如式所示:

其中:N表示模型中使用该周期的个数;T表示期望时间序列的周期长度;2n表示拟合季节性需要估计的参数个数。

N的设定需要结合T进行考虑,对于年的周期性,设定T=365.25,N为10;对于每周的季节性,T设置为7,N则设置为3,N越大,拟合复杂的季节性越好。

6、假期项h(t)

节假日和重要事件会对时间序列预测产生较大的影响,这些作用通常是可以预测的,将这些影响因素作为先验知识纳入模型,对模型准确率的提升具有主要意义。

h(t)表示非周期性的不规律的假期影响。模型通过自定义假期列表实现节假日或突发事件场景下的预测。

模型原理:h(t)=Z(t)k

其中:Z(t)为指示函数;k表示节假日的影响范围。

7、误差项εt

误差项:εt表示模型中未反映的噪声部分并假设噪声因子服从正态分布。

8、Prophet模型的优缺点

优点:

  1. 可拓展:曲线拟合问题可以很轻松的引入季节和周期性的影响,可以应用于多种数据类型。
  2. 数据灵活:与ARIM模型不同,曲线拟合问题不需要数据等步长,所以不需要对数据进行一些特殊操作(如插值)。
  3. 速度快:相比于传统的训练模型,曲线拟合的速度更快,有助于数据迭代。
  4. 能够自动处理所研究序列中的缺失值和异常值,能够对时间序列的未来趋势进行自动分解和预测。

局限性:

  1. 无法做到rolling forecasting,prophet训练和模型是分开的,要想更新模型,必须重新训练。
  2. 模型过于简单,模型的表达能力比较简单。导致训练模型时under-fitting,也就是对于复杂的模式,常常无法学到,预测精度有所折扣。
  3. 长时间预测不可靠。


http://chatgpt.dhexx.cn/article/v8nrFE4m.shtml

相关文章

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 什么是广度优先…

树与图的深度优先遍历

目录 一、概念 二、操作说明 1.树与图的深度优先遍历 2.树的DFS序 3.树的深度 4.树的重心 5.图的连通块划分 三、例题实践 1.树的重心例题实战 a.题目描述 b.解题思路 c.代码实现 一、概念 树与图的深度优先遍历:深度优先遍历,就是在每一个…

算法总结-深度优先遍历和广度优先遍历

深度优先遍历(Depth First Search,简称DFS) 与广度优先遍历(Breath First Search,简称BFS)是图论中两种非常重要的算法,生产上广泛用于拓扑排序,寻路(走迷宫),搜索引擎,爬虫等。 一、深度优先遍历 深度优先…

图的两种遍历:深度优先遍历+广度优先遍历

一、深度优先遍历 1、简介 深度优先遍历是指按照深度方向搜索,它类似于树的先根遍历,是树的先根遍历的推广。 基本思想(通俗) 选一条路走到 底,直到 走不通,就 原路返回看看 是否还有路可走,如…

C++实现图的深度优先遍历和广度优先遍历

图的深度和广度优先遍历 图的深度优先遍历1、算法思想2、邻接矩阵构造图3、邻接表构造图 图的广度优先遍历1、算法思想2、邻接矩阵构造图 参考 图的深度优先遍历 1、算法思想 (1)从图中的某个初始点 v 出发,首先访问初始点 v.(…

深度优先遍历

1.先序序列为a,b,c,d 的不同二叉树的个数是 (14) 。 13 14 15 16 f(n)c(n 2n)/n1 2.在构建哈弗曼树时,要使树的带权路径长度最小,只需要遵循一个原则,那就是:权重越大的结点离树…

图的遍历——深度优先遍历与广度优先遍历

目录 何谓遍历? 图的遍历特点 图的遍历方式 深度优先搜索 过程分析 案例分析: 算法的代码实现 测试案例: 测试结果如下: 遍历非连通图 算法复杂度分析 额外补充 广度优先搜索 过程分析 辅助队列 算法的代码实现 队…

图的深度优先遍历和广度优先遍历

本文参考自《大话数据结构》 文章目录 定义图的存储结构邻接矩阵邻接表 图的遍历深度优先遍历邻接矩阵代码邻接表代码 广度优先遍历邻接矩阵邻接表 最小生成树最短路径算法 定义 图(Graph) 是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为G(V&#xff0…

深度优先遍历和广度优先遍历

深度优先遍历和广度优先遍历 什么是 深度/广度 优先遍历? 深度优先遍历简称DFS(Depth First Search),广度优先遍历简称BFS(Breadth First Search),它们是遍历图当中所有顶点的两种方式。 这…

图的遍历(深度优先搜索)

1、深度优先搜索遍历过程 图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出…

图的遍历算法之深度优先遍历(DFS)(C++)

图的深度优先遍历思想是: 从图中某结点出发,访问其某一相邻结点,再访问该结点的相邻结点,直至访问完所有的结点。 形象的比喻就是:一条路走到头,回头再走没走过的路。 可见,深度优先遍历是一…

图的深度优先遍历

一 图遍历介绍 所谓图的遍历,即是对结点的访问。一个图有那么多个结点,如何遍历这些结点,需要特定策略,一般有两种访问策略。 1 深度优先遍历 2 广度优先遍历 二 深度优先遍历基本思想 图的深度优先搜索(Depth First Search…