Selecting the Hyperparameters#
NeuralProphet has a number of hyperparameters that need to be specified by the user.
If not specified, default values for these hyperparameters will be used.
View the NeuralProphet
class in the API documentation of forecaster.py
for details on all hyperparameters.
Forecast horizon#
n_forecasts
is the size of the forecast horizon.
The default value of 1 means that the model forecasts one step into the future.
Autoregression#
n_lags
defines whether the AR-Net is enabled (if n_lags
> 0) or not.
The value for n_lags
is usually recommended to be greater than n_forecasts
, if possible
since it is preferable for the FFNNs to encounter at least n_forecasts
length of the past
in order to predict n_forecasts
into the future. Thus, n_lags
determine how far into the
past the auto-regressive dependencies should be considered. This could be a value chosen based
on either domain expertise or an empirical analysis.
Increasing Depth of the Model#
ar_layers
defines the number of hidden layers and their sizes for the AR-Net in the overall model. It is an array where each element is the size of the corresponding hidden layer. The default is an empty array, meaning that the AR-Net will have only one final layer of size n_forecasts
. Adding more layers results in increased complexity and also increased computational time, consequently. However, the added number of hidden layers can help build more complex relationships. To tradeoff between the computational complexity and the improved accuracy, the ar_layers
is recommended to be set as an array with 1-2 elements. Nevertheless, in most cases, a good enough performance can be achieved by having no hidden layers at all.
lagged_reg_layers
defines the number of hidden layers and their sizes for the lagged regressors’ FFNN in the overall model. It is an array where each element is the size of the corresponding hidden layer. The default is an empty array, meaning that the FFNN of the lagged regressors will have only one final layer of size n_forecasts
. Adding more layers results in increased complexity and also increased computational time, consequently. However, the added number of hidden layers can help build more complex relationships, especially useful for the lagged regressors. To tradeoff between the computational complexity and the improved accuracy, the lagged_reg_layers
is recommended to be set as an array with 1-2 elements. Nevertheless, in most cases, a good enough performance can be achieved by having no hidden layers at all.
Please note that the previous num_hidden_layers
and d_hidden
arguments are now deprecated. The ar_net and covar_net architecture configuration is now input through ar_layers
and lagged_reg_layers
. If tuned manually, the recommended practice is to set values in between n_lags
and n_forecasts
for the sizes of the hidden layers. It is also important to note that with the current implementation, NeuralProphet allows you to specify different sizes for the hidden layers in both ar_net and covar_net.