NeuralProphet
是受Prophet
和AR-Net
的启发,并建立在Pytorch上的强大继续模型。
官网:https://neuralprophet.com/
NeuralProphet功能
与Prophet
相比,NeuralProphet
具备的功能有:
通过使用PyTorch的深度学习完成优化
使用
AR-Net
对时间序列的自相关建模使用前馈神经网络对滞后建模
可自定义损失和指标
同时也具备用户友好Python接口:
from neuralprophet import NeuralProphet
import pandas as pd
df = pd.read_csv('toiletpaper_daily_sales.csv')
m = NeuralProphet()
metrics = m.fit(df, freq="D")
forecast = m.predict(df)
特征1:自回归模型
n_lags
为NeuralProphet的参数,向AR-Net
提供5个滞后并接收 3 个步骤作为预测:
m = NeuralProphet(
n_forecasts=3,
n_lags=5,
yearly_seasonality=False,
weekly_seasonality=False,
daily_seasonality=False,
)
https://neuralprophet.com/html/auto-regression.html
特性2:滞后回归模型
滞后回归器仅AR-Net
可用,并且需要指定n_lags
值,调用add_lagged_regressor
函数注册这些滞后回归量:
m = m.add_lagged_regressor(names='A')
https://neuralprophet.com/html/lagged-regressors.html
特性3:添加特殊事件
在预测问题中需要考虑重复发生的特殊事件,可以以加法格式和乘法格式添加:
m = NeuralProphet(
n_forecasts=10,
yearly_seasonality=False,
weekly_seasonality=False,
daily_seasonality=False,
)
m = m.add_events(["superbowl", "playoff"])
https://neuralprophet.com/html/events.html
特性4:对未来进行回归
未来回归量是具有已知未来值的外部变量,我们还需要提供回归量的未来值:
df['A'] = df['y'].rolling(7, min_periods=1).mean()
df['B'] = df['y'].rolling(30, min_periods=1).mean()
m = NeuralProphet(
n_forecasts=10,
yearly_seasonality=False,
weekly_seasonality=False,
daily_seasonality=False,
)
m = m.add_future_regressor(name='A')
m = m.add_future_regressor(name='B')
https://neuralprophet.com/html/future-regressors.html
与Prophet实验对比
训练时间
训练时间是Prophet
的四倍,但预测非常快,上线部署如果有GPU更快!
模型选择
数据量比较小、以及长序列预测比较适合用Prophet
,其他情况都可以无脑选择NeuralProphet
具体精度
往期精彩回顾
适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件
本站qq群955171419,加入微信群请扫码: