在机器学习和深度学习的世界当中,存在众多经典且有效的(时间)序列模型。这些模型通常通过三种方式来建立样本与样本之间的关联:
ARIMA家族算法群:过去影响未来,因此未来的值由过去的值加权求和而成,以此构建样本与样本之间的关联。
循环网络家族:遍历时间点/样本点,将过去的时间上的信息传递存储在中间变量中,传递给下一个时间点,以此构建样本和样本之间的关联。
卷积网络家族:使用卷积核扫描时间点/样本点,将上下文信息通过卷积计算整合到一起,以此构建样本和样本之间的关联。
时间序列相关参考文章:
时间序列预测算法—ARIMA
基于VARMAX模型的多变量时序数据预测
基于机器学习时序库pmdarima实现时序预测
时间序列预测算法—Prophet
时间序列预测算法—LSTM
长时间序列预测算法—Informer
时间序列分类任务—tsfresh
有季节效应的非平稳序列分析
python时间序列处理
时间序列异常值检测方法
时间序列异常值处理方法
更多细节可见官网地址:https://facebook.github.io/prophet/docs/quick_start.html#python-api
一、模型介绍
Prophet 是facebook开源的的一个时间序列预测算法,特别适合于处理具有季节性和趋势的数据。主要思想是将数据分解为如下三个部分:趋势、季节性、节假日和特殊事件。
y(t)=g(t)+s(t)+h(t)+α
其中g(t)表示趋势项,s(t)表示季节项,h(t)表示节假日项,α表示残差项,通常是正态分布的。然后各项分别被拟合,最后的累加结果即是Prophet算法的预测结果。
二、Prophet 案例
Prophet 遵循sklearn模型 API。我们创建类的实例Prophet,然后调用它的fit方法predict。
Prophet 的输入始终是一个包含两列的数据框:ds和y。ds(日期戳)列应为 Pandas 所需的格式,理想情况下,日期为 YYYY-MM-DD,时间戳为 YYYY-MM-DD HH:MM:SS。该y列必须是数字,代表我们希望预测的测量值。
# python -m pip install prophet 安装
#从 v0.6 开始,不再支持 Python 2。
#从 v1.0 开始,PyPI 上的包名称为“prophet”;在 v1.0 之前它是“fbprophet”。
#从 v1.1 开始,支持的最低 Python 版本为 3.7。
import pandas as pd
from prophet import Prophet
#加载数据
df