热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

时序预测模型fbprophet

安装Prophetpython:3.7.9pystan:2.19.0.0pandasfbprophet:0.6.0anaconda方式:condainstallpy
安装Prophet

python: 3.7.9
pystan: 2.19.0.0
pandas
fbprophet: 0.6.0
anaconda方式:
conda install pystan=2.19.0.0
conda install -c conda-forge fbprophet=0.6.0

Prophet介绍

https://www.cnblogs.com/bonelee/p/9577432.html
https://facebook.github.io/prophet/docs/quick_start.html
可以预测数据,也可以给出趋势。时间序列预测上,充满专家经验:周期趋势、离群点、突变点、突变。

时间跨度

make_future_dataframe中的fre是Offset aliases形式的,用的pandas时间跨度
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases
比如1hour1min可以表示时间跨度是61分钟

预测未来1

利用函数make_future_dataframe生成未来时间DataFrame对象future :

from fbprophet import Prophet
import pandas as pd
import matplotlib.pyplot as plt
import mathtimelist = list(pd.date_range(start='2021-01-01 00:00:00', end='2022-01-01 00:00:00', freq='H'))
y = [math.sin(data.hour) for k, data in enumerate(timelist)]data_df = pd.DataFrame({'ds': timelist, 'y': y})
data_df['ds'] = data_df['ds'].astype('datetime64[ns]')m = Prophet()
m.fit(data_df) # 训练模型mfuture = m.make_future_dataframe(periods=50, freq='H',include_history=False) # 预测的设置 还没预测
forecast = m.predict(future) # 开始预测# plt.plot(data_df['ds'][-50:], data_df['y'][-50:], color='b')
# plt.plot(forecast['ds'], forecast['yhat'], color='r')
# plt.show()plt.plot(list(data_df['ds'][-50:])+list(forecast['ds']),list(data_df['y'][-50:])+list(forecast['yhat']), color='b')
plt.show()

在这里插入图片描述

预测未来2

未来任意时间:

# 1 取数据
# https://www.kesci.com/mw/dataset/5d64a35a8499bc002c07bb1bfrom fbprophet import Prophet
import pandas as pd
import matplotlib.pyplot as plt
import mathtimelist = list(pd.date_range(start='2021-01-01 00:00:00', end='2022-01-01 00:00:00', freq='H'))
y = [math.sin(data.hour) for k, data in enumerate(timelist)]data_df = pd.DataFrame({'ds': timelist, 'y': y})
data_df['ds'] = data_df['ds'].astype('datetime64[ns]')m = Prophet()
m.fit(data_df) # 训练模型mfuture = pd.DataFrame({'ds': list(pd.date_range(start='2022-05-01 00:00:00', end='2022-05-05 00:00:00', freq='H'))}) # 预测的设置 还没预测
forecast = m.predict(future) # 开始预测# plt.plot(data_df['ds'][-50:], data_df['y'][-50:], color='b')
plt.plot(forecast['ds'], forecast['yhat'], color='r')
plt.show()# plt.plot(list(data_df['ds'][-50:])+list(forecast['ds']),
# list(data_df['y'][-50:])+list(forecast['yhat']), color='b')
# plt.show()

在这里插入图片描述

预测模型持久化存储

推荐阅读
author-avatar
xaony23625
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有