README

快速开始

模型概述

相较于prophet的改进

趋势项

季节性

自回归

http://neuralprophet.com/model/auto-regression/

为自回归建模

通过简单地对NeuralProphet对象的n_lags参数设置一个适当的值,就可以在NeuralProphet中启用AR-Net。

m = NeuralProphet(    n_forecasts=3,    n_lags=5,    yearly_seasonality=False,    weekly_seasonality=False,    daily_seasonality=False,)

在上面的例子中,我们创建了一个预测方案,将5个滞后期输入AR-Net,并接收3个步骤作为预测。一旦您启用了AR-Net,在预测过程中,您的future_periods值应该等于创建NeuralProphet对象时指定的n_forecasts值。无论你为future_periods指定的是哪个值,它都会被转换为n_forecasts的值,并向用户发出通知。这是因为,由于AR-Net是在训练过程中建立的,因此它的输出大小为n_forecasts,在测试过程中不能支持任何其他值。

分解图如下所示。

http://neuralprophet.com/images/plot_comp_ar_1.png

plot-comp-1

现在你可以看到自回归作为一个独立的部分。相应的系数如下图所示。

http://neuralprophet.com/images/plot_param_ar_1.png

plot-param-1

在建立自相关模型时,您可以看到每个滞后的相关性。您也可以为AR-Net指定num_hidden_layers,以增加AR-Net的复杂性。

m = NeuralProphet(    n_forecasts=3,    n_lags=5,    num_hidden_layers=2,    yearly_seasonality=False,    weekly_seasonality=False,    daily_seasonality=False)

正则化AR-Net

在AR-Net中,正则化是通过在NeuralProphet对象中设置ar_sparsity参数来完成的,如下图所示。更多关于ar_sparsity参数设置的细节,请参考Hyperparameter Selection一节。

m = NeuralProphet(    n_forecasts=3,    n_lags=5,    num_hidden_layers=2,    ar_sparsity=0.01,    yearly_seasonality=False,    weekly_seasonality=False,    daily_seasonality=False)

突出特定的预测步骤

在建立自相关模型时,多输入多输出模式下的模型。在这种模式下,可以突出显示第n步前的预测。这意味着,在模型训练过程中计算误差以及预测绘图时,可以专门看第n步的预测。可以像下面这样做。

m = NeuralProphet(    n_forecasts=30,    n_lags=60,    yearly_seasonality=False,    weekly_seasonality=False,    daily_seasonality=False)m.highlight_nth_step_ahead_of_each_forecast(step_number=m.n_forecasts)

您可以指定任何小于或等于n_forecasts的值到step_number参数。一旦你这样做,指标将看起来像下面。

Untitled Database

在预测图中,它将只关注提前第n步的预测。如下图所示为该模型的fir。

http://neuralprophet.com/images/plot_forecast_ar_1.png

plot-forecast-1