【时间序列】NeuralProphet:Prophet的Pytorch实现!精度更高 预测更快 特性更多!...

NeuralProphet是受ProphetAR-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实验对比

训练时间

b13868683606d6306298ef07eabd05c0.png训练时间是Prophet的四倍,但预测非常快,上线部署如果有GPU更快!

模型选择

66b4f65abbd0dca53abd325ad15dde30.png

数据量比较小、以及长序列预测比较适合用Prophet,其他情况都可以无脑选择NeuralProphet

具体精度

57b5499c4d82f6e37de7fdddbcfef359.png

b17ee0d776a93c323a361a7194693b72.png

 
 
 
 
 
 
 
 
 
 
往期精彩回顾




适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载黄海广老师《机器学习课程》视频课黄海广老师《机器学习课程》711页完整版课件

本站qq群955171419,加入微信群请扫码:

1da63a539615e7d17ae07f59429ccece.png

NeuralProphet是Facebook开源的一个基于深度学习时间序列预测库,它结合了Prophet模型(一种线性加季节性模型)和深度学习技术。如果你想在NeuralProphet中利用深度学习改进预测,你可以按照以下步骤操作: 1. **安装和导入库**:首先,你需要安装` fbprophet` 和 `facebookresearch prophet`,以及用于深度学习的库如`Keras` 或 `PyTorch`。 ```python pip install fbprophet pip install facebookresearch-prophet ``` 2. **加载数据**:像Prophet一样,需要提供日期和数值列作为输入。可以使用`pandas`处理数据。 ```python df = pd.read_csv('your_data.csv') df['ds'] = df['date_column'] df['y'] = df['value_column'] ``` 3. **创建模型实例**:在初始化`Prophet`的基础上,添加神经网络层。例如,你可以使用`add_regressor`函数添加自变量,并通过`build_model`函数构建包含NN的模型。 ```python from fbprophet import Prophet from fbprophet.diagnostics import cross_validation model = Prophet() model.add_regressor('regressor_column') nn_model = model.build_model(deep_learning=True) ``` 4. **训练模型**:使用`fit`函数训练包含深度学习部分的模型。 ```python nn_model.fit(df) ``` 5. **交叉验证**:为了评估模型性能,可以使用交叉验证功能。 ```python cv_results = cross_validation(nn_model, df, horizon='1 period', verbose=False) ``` 6. **预测**:最后,你可以使用`predict`函数生成预测结果,这将包括基本的Prophet预测加上深度学习增强的部分。 ```python future = model.make_future_dataframe(periods=forecast_length) forecast = nn_model.predict(future) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值