相信很多小伙伴在pip install fbprophet时遇到诸多错误,怎么也解决不了,其实完全没必要!
一、依赖安装
# 安装prophet
pip install prophet -i https://pypi.tuna.tsinghua.edu.cn/simple
二、代码
import pandas as pd
from prophet import Prophet
import matplotlib.pyplot as plt
import matplotlib
matplotlib.use('TkAgg')
# 读入数据集
df = pd.read_csv('example_wp_log_peyton_manning.csv')
# 创建Prophet模型并拟合数据
model = Prophet()
model.fit(df)
# 创建未来时间范围
future = model.make_future_dataframe(periods=365, freq='D') # 这里假设要预测未来365天的数据
# 进行预测
forecast = model.predict(future)
# 绘制预测结果
fig = model.plot(forecast)
plt.show()
三、Prophet代码进阶
在建立预测模型之前,需要介绍各类参数的意义:
changepoint_range:设置寻找突变点的比例(默认为0.9,即从前90%的历史数据中学习突变点)
changepoints:设置制定突变点([‘2019-10-31’],不使用changepoint_range自动寻找突变点,可以手动指定日期)
changepoint_prior_scale:设置拟合跟随性(默认为0.05,值越大,拟合的跟随性越好,如果这个值过大,会有过拟合的风险)
interval_width:设置置信区间(默认为0.8,值越小,上下限的带宽越小)
seasonality_mode可以设置模型学习的方式,默认为加法,seasonality_mode=‘multiplicative’可以设置为乘法。一般情况下,有规律的平稳序列用加法模型,有较大趋势变化的序列可以考虑用乘法模型。
除以上基本参数之外,Prophet特别好用的地方在于,通过设置内置参数,可以调节以“年”、“月”、“周”等周期性参数。
yearly_seasonality=True,设置年规律拟合(False选择关掉)
weekly_seasonality,设置周规律拟合
daily_seasonality,设置日规律拟合
seasonality_prior_scale,设置季度周期性突变的灵活度,值越高越约灵活
自行研究吧
model = Prophet(changepoint_range=0.8
, changepoint_prior_scale=0.5
, interval_width=0.4
, seasonality_mode='multiplicative'
, yearly_seasonality=False
, seasonality_prior_scale=11
, weekly_seasonality=False)
model.add_seasonality(name='monthly', period=30.5, fourier_order=5)
最后:
如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!