【数据分析】利用机器学习算法进行预测分析(五):Prophet

article/2025/9/20 3:37:57

时间序列预测中的机器学习方法(五):Prophet

本文是“时间序列预测中的机器学习方法”系列文章的第五篇,如果您有兴趣,可以先阅读前面的文章:
【数据分析】利用机器学习算法进行预测分析(一):移动平均(Moving Average)
【数据分析】利用机器学习算法进行预测分析(二):线性回归(Linear Regression)
【数据分析】利用机器学习算法进行预测分析(三):最近邻(K-Nearest Neighbours)
【数据分析】利用机器学习算法进行预测分析(四):自回归差分移动平均模型(AutoARIMA)

1.Prophet 简介

Prophet是一种基于加性模型(additive model)预测时间序列数据的方法,其中非线性趋势与年、周、日的季节性变化以及假日效应相吻合。它适合具有强烈季节性影响和多个季节历史数据的时间序列。Prophet对于丢失数据和趋势变化具有较强的鲁棒性,并且通常能够很好地处理异常值。它的优点有:

  • 准确快速。Prophet在Facebook的许多应用程序中用于生成可靠的计划和目标设定预测。在大多数情况下,它的性能要优于其他方法。
  • 全自动。无需人工干预即可获得有关杂乱数据的合理预测。Prophet对异常值,丢失的数据以及时间序列中的急剧变化具有鲁棒性。
  • 可调整。Prophet为用户提供了许多调整和调整预测的可能性。可以使用一些参数来添加自己研究领域的相关知识,从而改善预测效果。

Prophet官网:https://facebook.github.io/prophet/
使用教程:https://facebook.github.io/prophet/docs/quick_start.html#python-api

2.股价预测实例

数据集和前面写的四篇文章相同,目的是为了比较不同算法对同一数据集的预测效果。数据集和代码放在了我的GitHub上,需要的朋友可以自行下载。

导入包,读入数据。fbprophet这个包在Windows下比较难安装,建议使用conda虚拟环境安装。若安装不成功时,请检查自己是否成功安装了pystan包。官网安装教程。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from fbprophet import Prophet
df = pd.read_csv('NSE-TATAGLOBAL11.csv')

设置索引。为了不破坏原始数据,重新构建一个new_data。

# setting the index as date
df['Date'] = pd.to_datetime(df.Date,format='%Y-%m-%d')
df.index = df['Date']#creating dataframe with date and the target variable
data = df.sort_index(ascending=True, axis=0)
new_data = pd.DataFrame(index=range(0,len(df)),columns=['Date', 'Close'])for i in range(0,len(data)):new_data['Date'][i] = data['Date'][i]new_data['Close'][i] = data['Close'][i]new_data['Date'] = pd.to_datetime(new_data.Date,format='%Y-%m-%d')
new_data.index = new_data['Date']
#preparing data
new_data.rename(columns={'Close': 'y', 'Date': 'ds'}, inplace=True)
new_data

在这里插入图片描述
将原始数据划分为训练集和测试集。

#train and validation
train = new_data[:987]
valid = new_data[987:]

适应模型。

#fit the model
model = Prophet()
model.fit(train)

做出预测

#predictions
close_prices = model.make_future_dataframe(periods=len(valid))
forecast = model.predict(close_prices)

提取出需要的数据。

forecast_valid = forecast['yhat'][987:]

观测RMSE的大小。

rmse = np.sqrt(np.mean(np.power((np.array(valid['y'])-np.array(forecast_valid)),2)))
rmse 

在这里插入图片描述
绘图观察预测情况。

#plot
valid['Predictions'] = 0
valid['Predictions'] = forecast_valid.valuesplt.figure(figsize=(16,8))
plt.plot(train['y'])
plt.plot(valid[['y', 'Predictions']])
plt.show()

在这里插入图片描述
从图中可以看到,Prophet对这个数据的预测效果也并不是很好。


http://chatgpt.dhexx.cn/article/2j2dkjDT.shtml

相关文章

关于导入Prophet库

在做项目时在参考别人的代码时,其from fbgrophet import Proghet给我造成了很大的困扰。我先是用conda装了能在里面找到的prophet,可以看到我在里面安装了prophet(p是小写的): 但这个并不能用import prophet来替代他的那句from fbgrophet im…

Prophet学习(一) Python API实现

目录 Python API 详细介绍 完整代码: Python API 详细介绍 Prophet遵循sklearn模型API。我们创建Prophet类的实例,然后调用它的fit和predict方法。 Prophet的输入总是一个有两列的数据帧:ds和y。ds(日期戳)列应该是Pandas期望的格式,理想…

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出发开始进行搜索,不断搜索直到该节点的所有边都被遍历完。对于很多树、图和矩阵地搜索问题,深度优先遍历是…