概述
上周同事在分享爬虫的过程中,说到了动态调度的难度在于网站的每天的更新的次数,然后我就想到关于时间序列的预测,是否可以解决这个问题。
关于时间序列的建模,AR,MA,ARMA等传统的算法已经很成熟,但是效果不是很好,facebook开源的工具Prophet效果就好很多
Github地址:
https://github.com/facebook/prophet
官方网址:
https://facebook.github.io/prophet/
prophet 所做的事情就是:
(1)输入已知的时间序列和对应的值(Prophet是单特征模型,输入只有两列,日期列必须被称为“ds”,数值列被称为“y”);
(2)输入需要预测的时间序列的长度,比如 periods 设置365,就表示预测365个新值;
(3)使用已经有的时间序列和对应值训练模型,并输出结果。
(4)输出结果包括目标值,上界和下界,等,还可以画出趋势曲线。
其中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()
最后
以上就是动人季节为你收集整理的时间序列预测算法----Prophet的全部内容,希望文章能够帮你解决时间序列预测算法----Prophet所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复