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

上周同事在分享爬虫的过程中,说到了动态调度的难度在于网站的每天的更新的次数,然后我就想到关于时间序列的预测,是否可以解决这个问题。
关于时间序列的建模,AR,MA,ARMA等传统的算法已经很成熟,但是效果不是很好,facebook开源的工具Prophet效果就好很多

Github地址:
https://github.com/facebook/prophet
官方网址:
https://facebook.github.io/prophet/

prophet 所做的事情就是:
(1)输入已知的时间序列和对应的值(Prophet是单特征模型,输入只有两列,日期列必须被称为“ds”,数值列被称为“y”);

https
(2)输入需要预测的时间序列的长度,比如 periods 设置365,就表示预测365个新值;
(3)使用已经有的时间序列和对应值训练模型,并输出结果。
(4)输出结果包括目标值,上界和下界,等,还可以画出趋势曲线。
其中yhat为预测的结果,yhat_lower和yhat_upper分别是预测的下界和上界,给出了一个置信区间
其中yhat为预测的结果,yhat_lower和yhat_upper分别是预测的下界和上界
预测曲线

实现代码如下:

from fbprophet import Prophet
import pandas as pd
df = pd.read_excel('./test.xlsx')
m = Prophet()
m.fit(df)
#这里预测是以天为维度 默认的是freq='D' ,
# freq: Any valid frequency for pd.date_range, such as 'D' or 'M'.  可以使用 pd.date_range定义任意的时间间隔
future = m.make_future_dataframe(periods=365)
forecast = m.predict(future)

dataFm = pd.DataFrame(forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']])
dataFm.to_csv('./res.csv')

picter1 = m.plot(forecast)
picter1.show()
picter2 = m.plot_components(forecast)
picter2.show()
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值