Prophet 处理时间序列数据
flyfish
论文地址
https://peerj.com/preprints/3190/
官网
https://facebook.github.io/prophet/
源码地址
https://github.com/facebook/prophet
hon
import pandas as pd
from prophet import Prophet
df = pd.read_csv('https://raw.githubusercontent.com/facebook/prophet/main/examples/example_wp_log_peyton_manning.csv')
df.head()
m = Prophet()
m.fit(df)
future = m.make_future_dataframe(periods=365)
future.tail()
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
fig1 = m.plot(forecast)
fig2 = m.plot_components(forecast)
输入数据包含两列ds 和 y,ds表示时间序列的时间戳,y表示时间序列的取值
ds表示时间 可以是YYYY-MM-DD或者YYYY-MM-DD HH:MM:SS
输出
只取其中的
yhat:预测值
yhat_lower:预测值的下界
yhat_upper:预测值的上界
全部的列名
ds trend yhat_lower yhat_upper trend_lower trend_upper additive_terms
additive_terms_lower additive_terms_upper weekly weekly_lower weekly_upper
yearly yearly_lower yearly_upper multiplicative_terms multiplicative_terms_lower
multiplicative_terms_upper yhat
黑色的点表示原始的时间序列离散点。
深蓝色的线表示使用时间序列来拟合所得到的取值。
浅蓝色的线表示时间序列合理的上界和下界。
图1是根据trend画图
图2是根据weekly画图
图3是根据yearly画图