Python实现Prophet时序预测模型

最近在写时间序列的预测模型,用到了Prophet 模型,总结一下。

了解什么是Prophet模型

自行百度,我参考别人的

https://blog.csdn.net/beiye_/article/details/123353123
Prophet适用于各种具有潜在特殊特征的预测问题包括广泛的业务时间序列问题,并且其对时间序列趋势变化点的检测、季节性、节假日以及突发事件具有更好的拟合效果。
在这里插入图片描述
https://blog.csdn.net/weixin_46969441/article/details/121146137
重点:Prophet模型的输入必须只包含两列数据

Python实现Prophet模型

以鸢尾花-sepal length的数据为例,导入基本的库

import pandas as pd
from prophet.plot import plot_plotly,plot_components_plotly
from sklearn.metrics import mean_squared_error
import numpy as np
from prophet import Prophet
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

import warnings
warnings.filterwarnings("ignore")

from sklearn.datasets import load_iris
# 加载鸢尾花数据集
iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df.tail()

构造一列日期

#构造日期函数 
from datetime import datetime, timedelta    
def generate_dates(start_date_str, end_date_str, date_format="%Y-%m-%d"):  
    # 将字符串日期转换为datetime对象  
    start_date = datetime.strptime(start_date_str, date_format)  
    end_date = datetime.strptime(end_date_str, date_format)  
    # 生成日期列表  
    dates = []  
    current_date = start_date  
    while current_date 
### 使用Python Prophet模型进行ETHH1时间序列预测 #### 准备工作 为了使用Prophet模型进行ETHH1(假设为某种特定的时间序列数据集)的时间序列预测,首先需要安装必要的库并导入所需模块。 ```bash pip install pandas prophet matplotlib ``` 接着,在代码中引入这些包: ```python import pandas as pd from prophet import Prophet import matplotlib.pyplot as plt ``` #### 数据预处理 确保输入的数据格式适合于Prophet模型的要求。通常情况下,这涉及到读取CSV文件并将日期列转换成`datetime`对象。对于ETHH1这样的金融类时间序列,可能还需要额外的清洗步骤来处理缺失值等问题。 ```python df = pd.read_csv('path_to_ethh1_data.csv') df['ds'] = pd.to_datetime(df['date_column']) # 假设有一个名为'date_column'的日期字段 df = df.rename(columns={'value_column': 'y'}) # 将目标变量重命名为'y' ``` #### 初始化与训练模型 按照标准流程初始化Prophet实例,并利用准备好的DataFrame `df`来进行拟合操作。 ```python model = Prophet() model.fit(df) ``` #### 创建未来时间段框架 定义想要预测的时间长度,这里以30天为例说明如何构建未来的日期索引表单。 ```python future = model.make_future_dataframe(periods=30) ``` #### 执行预测过程 调用`.predict()`方法基于已有的模型对未来做出估计,并提取感兴趣的几个关键指标如预期值(`yhat`)及其置信区间上下限(`yhat_lower`, `yhat_upper`)。 ```python forecast = model.predict(future) print(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()) ``` #### 结果展示 最后一步是对所得的结果进行图形化的呈现,以便更直观地理解趋势变化情况以及不确定性范围内的波动程度。 ```python fig1 = model.plot(forecast) plt.show() # 或者绘制更多细节图 fig2 = model.plot_components(forecast) plt.show() ``` 通过上述一系列的操作就可以完成一次完整的ETHH1时间序列预测任务[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值