基于Prophet时间序列的监测值预测

初识Prophet模型(二)-- 应用篇 相关学习: 初识Prophet模型(一)–理论篇 7、Prophet 模型应用 7.0 背景描述 该案例使用的是wiki网站日访问量(数值经过log处理)的csv数据文件 描述的是美国著名橄榄球四分卫的维基页面浏览量,他是美国球员,一年里的周期规律会起很大作用,而一周里的周期规律也很明显。 7.1 导入数据 import pandas as pd import numpy as np from fbprophet import Prophet import matplotlib.pyplot as . 阅读详情

 留全部代码备份

通过facebook开源模型Prophet对未来时间内某基坑变形监控值进行预测,但该模型好像并不适用于这种施工过程中的数据预测,但是至少能预测,交差总没问题吧。预测10天。

import pandas as pd
from matplotlib import pyplot as plt
from fbprophet import Prophet
import numpy as np
import matplotlib
import tkinter as tk
from  tkinter import ttk
from matplotlib.pylab import mpl
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk
from mpldatacursor import datacursor
import datetime
import time
import threading  
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()
plt.rcParams['font.sans-serif'] = ['SimHei']
#  用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False
def forecast(ax2):

    # 用来正常显示负号
    df = pd.read_csv('data.csv')
    df.head()
    m = Prophet(daily_seasonality=True)
    m.fit(df)
    future = m.make_future_dataframe(periods=10)
    future.tail()
    forecast = m.predict(future)
    forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

    alltime = forecast['ds']
    histtime = m.history['ds']
    futuretime = alltime[m.params['Y'].size:]

    alldata = forecast['yhat']
    histdata = m.history['y']
    futuredata = alldata[m.params['Y'].size:]

    xlabel='日期'
    ylabel='监测值'
    figsize=(10, 6)
    fig = plt.figure(facecolor='w', figsize=figsize)
    ax2.clear()
    line1, = ax2.plot(histtime, histdata, marker='+',ls='-', c='#0072B2')
    ax2.plot([histtime[histtime.size-1],futuretime[histtime.size]], [histdata[histdata.size-1],futuredata[histdata.size]], ls='-', c='#F072B2')
    line2, = ax2.plot(futuretime, futuredata, marker='+',ls='-', c='#F072B2')
    ax2.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
    ax2.set_xlabel(xlabel)
    ax2.set_ylabel(ylabel)
    ax2.legend(handles = [line1, line2,], labels = ['历史值', '预测值'], loc = 'best')
    fig.tight_layout()
    return [fig,[histtime,histdata,futuretime,futuredata]]


def update_tk(tk_root,ax,canvas):
    tk_root.title('预测计算中...')
    [figure,data] = forecast(ax)
    canvas.draw_idle()

    fm2 =tk_root.children['!frame2']
    fm21 = fm2.children['!frame']
    scrollBar22 = fm21.children['!scrollbar']
    treehist = fm21.children['!treeview']

    histtime = np.array(data[0],dtype=np.datetime64).tolist()
    for i in range(len(histtime)):
        treehist.insert("",'end',text="" ,values=(i+1,time.strftime("%Y-%m-%d",time.localtime(histtime[i]/1000000000)),data[1][i])) #插入数据,
  
    fm22 = fm2.children['!frame2']
    treefutrue = fm22.children['!treeview']
    scrollBar22 = fm22.children['!scrollbar']

    futuretime = np.array(data[2],dtype=np.datetime64).tolist()
    futuredata = np.array(data[3],dtype=np.float64).tolist()
    for i in range(len(futuretime)):
        treefutrue.insert("",'end',text="" ,values=(i+1,time.strftime("%Y-%m-%d",time.localtime(futuretime[i]/1000000000)),futuredata[i])) #插入数据,
    scrollBar22.config(command=treefutrue.yview)
    tk_root.title('检测值预测完成')
    

if __name__ == '__main__':
    root = tk.Tk()
    root.title('检测值预测窗口')
    fm1 = tk.Frame(root)
    # 进入消息循环
    
    xlabel='日期'
    ylabel='监测值'
    figsize=(10, 6)
    figure = plt.figure(facecolor='w', figsize=figsize)
    ax2 = figure.add_subplot(111)
    ax2.grid(True, which='major', c='gray', ls='-', lw=1, alpha=0.2)
    ax2.set_xlabel(xlabel)
    ax2.set_ylabel(ylabel)
    figure.tight_layout()

    canvas=FigureCanvasTkAgg(figure,fm1)
    canvas.draw()  #以前的版本使用show()方法,matplotlib 2.2之后不再推荐show()用draw代替,但是用show不会报错,会显示警告
    canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)

    #把matplotlib绘制图形的导航工具栏显示到tkinter窗口上
    toolbar =NavigationToolbar2Tk(canvas, fm1) #matplotlib 2.2版本之后推荐使用NavigationToolbar2Tk,若使用NavigationToolbar2TkAgg会警告
    toolbar.update()
    canvas._tkcanvas.pack(side=tk.TOP, fill=tk.BOTH, expand=tk.YES)
    fm1.pack(side=tk.LEFT, fill=tk.BOTH, expand=tk.YES)

    fm2 = tk.Frame(root)
    fm21 = tk.Frame(fm2)
    scrollBar21 = tk.Scrollbar(fm21)
    scrollBar21.pack(side=tk.RIGHT, fill=tk.Y)
    treehist=ttk.Treeview(fm21,show="headings",yscrollcommand=scrollBar21.set)#表格
    treehist["columns"]=("id","time","data")
    treehist.column("id",width=30)   #表示列,不显示
    treehist.column("time",width=100)   #表示列,不显示
    treehist.column("data",width=100)
 
    treehist.heading("id",text="序号")  #显示表头        
    treehist.heading("time",text="历史日期")  #显示表头
    treehist.heading("data",text="历史监测值")
    histtime = []
    histdata = []
    for i in range(len(histtime)):
        treehist.insert("",'end',text="" ,values=(i+1,time.strftime("%Y-%m-%d",time.localtime(histtime[i]/1000000000)),histdata[i])) #插入数据,
  
    treehist.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
    fm21.pack(side=tk.LEFT, fill=tk.BOTH, expand=tk.YES)
    scrollBar21.config(command=treehist.yview)

    fm22 = tk.Frame(fm2)
    scrollBar22 = tk.Scrollbar(fm22)
    scrollBar22.pack(side=tk.RIGHT, fill=tk.Y)
    treefutrue=ttk.Treeview(fm22,show="headings",yscrollcommand=scrollBar22.set)#表格
    treefutrue["columns"]=("id","time","data")
    treefutrue.column("id",width=30)   #表示列,不显示
    treefutrue.column("time",width=100)   #表示列,不显示
    treefutrue.column("data",width=100)
 
    treefutrue.heading("id",text="序号")  #显示表头    
    treefutrue.heading("time",text="预测日期")  #显示表头
    treefutrue.heading("data",text="预测监测值")
    futuretime = []
    futuredata = []
    for i in range(len(futuretime)):
        treefutrue.insert("",'end',text="" ,values=(i+1,time.strftime("%Y-%m-%d",time.localtime(futuretime[i]/1000000000)),futuredata[i])) #插入数据,

    treefutrue.pack(side=tk.TOP, fill=tk.BOTH, expand=1)
    fm22.pack(side=tk.RIGHT, fill=tk.BOTH, expand=tk.YES)
    scrollBar22.config(command=treefutrue.yview)
    
    fm2.pack(side=tk.RIGHT, fill=tk.BOTH, expand=tk.YES)

    th=threading.Thread(target=update_tk,args=(root,ax2,canvas,))  
    th.setDaemon(True)#守护线程  
    th.start()  
    root.mainloop() 

结果如下图:

 

prophet模型预测时间序列 prophet模型预测时间序列 prophet:facebook开源的的一个时间序列预测算法。 原理:基于时间序列分解和机器学习的拟合来做的。 把时间序列 分成不同时间间隔 和 整体趋势的组合。 间隔: 年 季度 月 周 日 介绍一个开源数据库-Quandl 库 注册网站: https://data.nasdaq.com/ 注册完之后,在你的个界面找到API pip install quandl 从quandl库中免费提取出特斯拉 和 通用 股票的数据 import quandl i 阅读详情

相关推荐

时间序列预测算法---Prophet

本文探讨了Prophet算法在时间序列预测中的应用,分析了其优势及适用场景。通过实际数据验证,Prophet在处理季节性、趋势变化等方面表现出色,预测精度高。文章为时间序列预测领域提供了一种高效、实用的方法,对相关研究和实践具有指导意义。

u012121721的博客 1万+

python prophet 预测销量及参数调整

prophet是一个比较自动的时间序列模型,在时间足够长的情况下,可以捕捉到年周期,月周期,季度周期,一周内的周期等,以及长期趋势,它可以通过图直观地展示各个因素对预测结果的影响,也可以在单一的数据序列(例如销量)之外加入其它影响序列的因素,比如说节日的影响,我们可以给各个节日的影响强度自定义数字,以及节日的前期预热,和节日的延续时间窗 prophet一个重要特性是changepoint,它会自...

SummerStoneS的博客 7323

Prophet 时间序列预测算法

Prophet 时间序列预测算法

ideal-lingyun 1158

Facebook时间序列预测算法模型-prophet

prophet(先知)是Facebook开源的一个时间序列预测算法。其是基于时间序列分解和机器学习的拟合来做的,其中在拟合模型的时候使用了pyStan这个开源工具,因此能够在较快的时间内得到需要预测的结果。prophet的算法里面考虑了四项,分别为:趋势项、季节项、剩余项和节假日效应。其中为趋势项,表示时间序列在非周期上面的变化趋势。为周期项或季节项,代表节假日项,表示在当天是否存在节假日。表示误差项或者剩余项。Prophet算法就是通过拟合这几项,最后累加起来就得到了时间序列的预测值。下面简要介绍一下Pr

weixin_47620160的博客 6353

时间序列预测模型比较分析:SARIMAX、RNN、LSTM、Prophet 及 Transformer

我们使用 “电力生产 ”数据集探索时间序列识别。我们的目标是计算该数据的月平均值,从而发现准确预测所必需的关键趋势和模式。plt.show()图 (1): 月度电力生产数据可视化该图(图 1)揭示了电力生产的潜在季节性变化,这对预测工作至关重要。plt.show()图 (2): ACF 和 PACF 图Dickey-Fuller 检验: 显示非平稳性,表明需要进行差分。ACF 和 PACF: 突显了自回归和移动平均成分的必要性,建议使用初始 ARIMA(1,1,0)模型。

weixin_53707653的博客 1469

facebook-Prophet时序预测实战(附代码)

关于prophet库的安装参考Windows平台下安装prophet,linux平台下一般没什么问题,直接用pip就可以。本文安装的fbprophet包版本为0.4.0(最新版本) 简介 输入到prophet中的数据要求是Dataframe类型,时间列的标签要命名为 ds ,数据列的标签需要命名为 y (命名一定要是ds,y否则无法通过编译) 引用模块 import pandas as ...

iwtbs 5040

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

之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet。详细见这里。 接下来的几个部分,我们说下如何使用Prophet,以此来体验下Prophet的丰富内容。内容会比较多,主要翻译自官方文档。教程中使用的数据集可在 Prophet 的 github 主页 中的 examples 文件夹 内下载得到。 目录 一、简易入门 二、饱和预测 2.1 预测饱和增长 2....

anshuai_aw1的博客 16万+

porphet论文_时间序列模型Prophet使用详细讲解

目录一、简易入门二、饱和预测2.1 预测饱和增长2.2预测饱和减少三、趋势突变点3.1Prophet 中的自动监测突变点3.2调整趋势的灵活性3.3指定突变点的位置四、季节性,假期效果和回归量4.1 对假期和特征事件建模4.2 季节性的傅里叶级数4.3自定义季节性因素4.4对节假日和季节性设定先验规模4.5附加的回归量五、乘法季节性六、预测区间6.1 趋势的不确定性6.2 季节的不确...

weixin_39520595的博客 887

时间序列:Prophet

之前我们已经讲过了如何在Windows系统下安装Python版本的Prophet。详细见这里。 接下来的几个部分,我们说下如何使用Prophet,以此来体验下Prophet的丰富内容。内容会比较多,主要翻译自官方文档。教程中使用的数据集可在 Prophet 的 github 主页 中的 examples 文件夹 内下载得到。 目录 一、简易入门 二、饱和预测 2.1...

YJ语 1801

Prophet在太阳黑子预测中的物理建模实践与时间序列可解释性

时间序列预测不仅是数学拟合,更是对趋势、周期与突变事件的联合建模。在数据稀疏、物理机制明确但噪声强干扰的真实场景中,传统深度模型易忽略相位规律与领域先验,而Prophet凭借显式趋势分解(g(t))、多尺度季节项(s(t))和节假日效应重定义(h(t))三大能力,天然适配弱先验驱动型问题。其核心价值在于将天体物理知识(如11年施瓦贝周期、蒙德极小期)转化为可调参数与结构约束,实现‘模型即解释’。本文以认证杯小美赛A题为载体,详解如何用Prophet完成从数据甄别、物理周期嵌入、不确定性量化到三重验证的全链路

优快云头条 698

告别外置电阻!揭秘MAX22201集成电流检测的5大设计优势(附PCB布局案例)

本文深入解析MAX22201集成电流检测技术在直流有刷电机驱动中的5大设计优势,包括BOM成本降低、PCB空间优化、动态性能提升等。通过与传统方案(如DRV8871+外置电阻)的实测对比,展示其在高精度电流检测、抗干扰能力和PCB布局简化方面的突破,并附有详细的PCB布局案例和配置指南。

weixin_29189377的博客 243

【Python】时间序列数据分析与预测之Python工具汇总

本文中总结了十多种时间序列数据分析和预测工具和python库,在我们处理时间序列项目时,可以翻开本文,根据需要选择合适的工具,将会事半功倍!在处理时间序列项目时,数据科学家或 ML 工程师通常会使用特定的工具和库。或者他们使用一些众所周知的工具,而这些工具已被证明可以很好地适用与对应的时间序列项目。如果能将这些工具汇总,在以后的项目中将会很受用。这篇文章是一个时间序列工具...

fengdu78的博客 5966

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

Prophet时间序列预测实战:业务友好型建模指南

时间序列预测是数据分析与智能决策的核心基础能力,其本质在于从历史时序数据中提取趋势、周期与事件影响等可解释模式。Prophet作为面向业务场景优化的开源模型,通过趋势分解、节假日效应建模与贝叶斯不确定性估计,显著降低了建模门槛与结果解读成本。相比LSTM等黑箱深度学习方法,它更强调可解释性与鲁棒性——尤其擅长处理缺失值、非平稳趋势和不规则促销事件。在销售预测、用户增长、供应链计划等高频应用中,Prophet以快速迭代、低维护成本和高交付质量成为落地首选。本文聚焦真实项目中的参数调优逻辑、数据预处理陷阱与生产

wgyyh 463

RK3588嵌入式AI部署实战:从环境搭建到模型推理全链路

嵌入式AI部署涉及交叉编译、NPU驱动、模型量化与运行时环境等多个技术环节,其核心挑战在于软硬件版本矩阵的严格匹配。在边缘计算场景中,RK3588凭借6TOPS NPU算力成为热门平台,但环境搭建与模型转换的复杂性常导致部署效率低下。通过容器化工具链管理、量化参数对齐及多线程推理优化,可显著提升部署稳定性与推理性能。典型应用包括智能安防、工业质检与视频结构化分析。本文围绕RK3588的AI部署与环境搭建,系统梳理从系统烧录到板端推理的完整实践路径。

weixin_42520573的博客 284

CCSP考后复盘:那些刷题时感觉良好,考场却发懵的题目到底长什么样?

本文深入分析了CCSP考试中常见的题目陷阱和解题策略,揭示了刷题与实战的差距。通过解析换装题、双胞胎选项和场景题等典型题型,帮助考生掌握拆题技巧和思维模式转变,提升应对CCSP考试的能力。

weixin_30485379的博客 438

结构电池数据怎么用?Prophet时间序列预测的7个关键步骤

掌握结构电池数据预测新方法,本文详解Prophet时间序列预测的7个关键步骤。适用于电池性能趋势分析与寿命评估,涵盖数据预处理、模型构建与结果可视化,提升预测准确性。结构电池的 Prophet 预测实战指南,值得收藏

DevPath的博客 462

国产AI芯动力:复旦微FMQL100TAI900 FPGA原型验证板全解析

本文全面解析了复旦微FMQL100TAI900 FPGA原型验证板在国产AI硬件领域的创新突破。该板卡采用全栈国产化设计,具备出色的AI推理性能、视频处理能力和接口生态,特别适合工业质检、智能交通等场景。文章详细介绍了其芯片架构、存储子系统、接口扩展及电源设计,并分享了实战开发经验,为开发者提供了一套可靠的国产计算平台解决方案。

weixin_29250573的博客 457

prophet页面访问流量预测、高铁乘客数量预测、沪市指数预测

文章目录前言ARIMA模型不足prophet模型原理与工具页面访问流量预测案例JetRail高铁的乘客数量预测沪市指数预测总结 前言 什么是AI? The theory and development of computer systems able to perform tasks normally requiring human intelligence.(–Oxford Dictionary) Using data to solve problems.(–cy) ARIMA模型不足 prophet

qq_27328197的博客 1061

STM32驱动MG996R舵机的PWM控制与闭环原理

舵机是一种典型的模拟闭环伺服系统,其核心是通过电位器反馈实现角度位置的自动校正。工作原理基于负反馈控制:目标PWM脉宽决定期望角度,电位器输出实时反馈实际角度,控制电路计算偏差并驱动电机消除误差。该机制赋予舵机强带载能力与抗干扰性,是机器人、云台、智能执行器等场景的关键执行单元。在嵌入式开发中,STM32通过定时器生成标准20ms周期、0.5–2.5ms脉宽的PWM信号,需严格遵循电气规范,并解决PA15引脚SWJ复用冲突、定时器重映射及CCR精度计算等关键问题。本文深入解析MG996R舵机控制全流程,涵盖

weixin_42600407的博客 564

2025年9月GESP(C++四级):排兵布阵

作为将军,你自然需要合理地排兵布阵。地图可以视为n行m列的网格,适合排兵的网格以 1 标注,不适合排兵的网格以 0 标注。现在你需要在地图上选择一个矩形区域排兵,这个矩形区域内不能包含不适合排兵的网格。请问可选择的矩形区域最多能包含多少网格?

王老师青少年编程 1383

python空气质量数据分析与预测系统 机器学习 时间序列预测算法 Prophet 大数据技术 Django框架 毕业设计(源码+文档)✅

python空气质量数据分析与预测系统 机器学习 时间序列预测算法 Prophet 大数据技术 Django框架 毕业设计(源码+文档)✅

公众号:源码之屋,十多年程序猿资深互联网人,目前专注于Python/Java/大数据项目解决方案制定,提供各行业各编程语言的全套开发服务,喜爱code,喜爱分享,生命不止,编码不息! 1884

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

S7-200SMART通过表格指令实现模拟量信号滑动平均值滤波的具体方法

Robot_PLC_HMI_Automation 6727

prophet(3)

1预测饱和减少 logistic增长模型还可以处理饱和最小值,方法与指定最大值的列的方式相同: 2趋势突变点 在之前的部分,我们可以发现真实的时间序列数据往往在趋势中存在一些突变点。默认情况下, Prophet 将自动监测到这些点,并对趋势做适当地调整。不过,要是对趋势建模时发生了一些问题,例如:Prophet 不小心忽略了一个趋势速率的变化或者对历史数据趋势变化存在过拟合现象。如果我们希望对趋势的调整过程做更好地控制的话,那么下面将会介绍几种可以使用的方法。 1.Prophet 中的自动监测突变点 P

m0_46149106的博客 1094

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

工业数据的Prophet预测实战(从入门到精通)

掌握工业数据的Prophet预测实战技巧,解决时序异常与产能波动难题。适用于设备监控、生产预测等场景,基于Facebook开源模型实现高精度趋势预测,支持多周期拟合与自动调参。方法详尽,代码可复用,值得收藏。

VarFlow的博客 850

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: Abaqus中遇到的相关问题
下一篇: 电脑开机自动推送微信通知
成田日上
博客等级 码龄11年 96粉丝 20原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值