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
,在测试过程中不能支持任何其他值。
分解图如下所示。
plot-comp-1
现在你可以看到自回归作为一个独立的部分。相应的系数如下图所示。
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中,正则化是通过在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
参数。一旦你这样做,指标将看起来像下面。
在预测图中,它将只关注提前第n步的预测。如下图所示为该模型的fir。
plot-forecast-1