Neural Prophet

General information

Neural Prophet is a time-series forecasting model inspired by Facebook Prophet and AR-Net (for autocorrelation modeling). It is built on PyTorch and combines Neural Networks and traditional time-series algorithms.
Neural Prophet includes all the components from the original Prophet model: trend, seasonality, recurring events, and regressors. Further, Neural Prophet now also provides support for auto-regression and lagged covariates. That's particularly relevant in the kinds of applications in which the near-term future depends on the current state of the system.
It also provides an automatic selection for the hyperparameters related to model training. In addition, the model is adaptable to different forecast horizons (greater than 1) and its components can be interpreted with the corresponding visualizations.

Description

Brick Locations

Bricks Machine Learning Neural Prophet

Brick Parameters

Simple mode:

  • Datetime
    • Dataset column that specifies the datetime of the observation.
  • Target Variable
    • A column that contains the values to be predicted.
  • Frequency (’Auto’ by default)
    • Data step sizes (frequency of data recording).
      Available time units (‘Custom’ frequency):
    • days
    • hours
    • minutes
Regression / Auto-Regression
  • Future Regressors (optional)
    • Regressors as lagged covariates with order 1 or as known in advance.
  • Lags (0 by default)
    • Previous time series steps to include in auto-regression i.e. AR-order.
  • Lag-Regressors (optional)
    • Covariate or list of covariate time series added as additional lagged regressors to be used for fitting and predicting.
  • Forecasts (1 by default)
    • The number of steps ahead of prediction time step to forecast.
Events (optional, if optional events input is connected)
  • Datetime
    • A column from the optional events input that contains the dates for the user-specific events.
  • Events column
    • A column from the optional events input that specifies the names of the user-specific events.
 
  • Country Holidays (optional)
    • Include the country’s specific holidays in the forecasting.

Advanced mode:

  • Confidence Interval (5% - 95% by default)
    • Lower and upper bounds of the confidence interval.
Seasonality (’Auto’ by default)
  • Yearly
    • Whether to fit a yearly seasonality.
  • Weekly
    • Whether to fit a weekly seasonality.
  • Daily
    • Whether to fit a daily seasonality.
Model Training
  • Epochs (’Auto’ by default)
    • The number of epochs (complete iterations over the dataset) to train a model.
      The recommended value is 5-500 epochs.
  • Batch Size (’Auto’ by default)
    • Number of samples per mini-batch.
  • Learning Rate (’Auto’ by default)
    • Maximum learning rate (step size at each iteration).
  • Newer Samples Weight
    • A factor by which the model fit is skewed towards more recent observations.
Outputs
The components that will be included in the output dataset.
Available options:
  • Return AR components
  • Return Trend
  • Return Regressors
  • Return Events
  • Return Seasonality

Brick Inputs/Outputs

  • Inputs
    • Data
      • Brick takes the dataset with time-series data.
    • Optional events
      • A dataset that contains all the user-specified events. It must contain the datetime column and a column with the event name for each date.
  • Outputs
    • Data
      • Brick returns the model predictions with their confidence intervals. Depending on the selected options in the ‘Outputs’ sections of the advanced mode, the output dataset may contain additional components.
    • Model
      • A trained Neural Prophet model that can be used in other bricks as an input.

Example of usage

Let’s see how to use the Neural Prophet model for time series forecasting.
For example, we have a dataset with the date column ‘ds_year_month_day’ (1-day frequency), ‘y’ as a target variable, and other numeric regressor columns.
notion image
Based on this data, we can train the Neural Prophet model to forecast the values of ‘y’.
In the configuration, we need to fill in the ‘Datetime’ and ‘Target Variable’ fields and choose the frequency of dates (which can be automatically determined). Also, we set the auto-regression parameters and use the USA-specific holidays.
notion image
notion image
In the Data Preview section, we can view the output dataset of the model. It contains three additional columns: predicted values and confidence intervals.
notion image
In the Model Info, apart from the model metrics, we can look at the plots, featuring the forecasting results and all the model’s components.
notion image
To make predictions for the future period, first, we can create the future dataset for a trained Neural Prophet model with the Prepare Future Dataset brick.
Then we apply the Predict brick to get the forecasts.
notion image
To get the Neural Prophet model performance, forecasting plot, and components for future data predictions, click on the Model performance tab in the Predict brick. You will get the following results:
notion image
 
To specify more advanced options, we can configure the model in the Advanced mode.
For instance, we add the ‘COAST’ column as a future regressor, change the confidence interval bounds, enable yearly seasonality, disable daily seasonality, set 50 training epochs, and return the trend, seasonality, and regressors in the output dataset.
notion image
notion image
notion image
The model output data and the forecasting results are the following:
notion image
notion image
 
Finally, let’s add custom events to the model from the example above.
We need to prepare the dataset for the optional events input, which must contain the dates when some event occurs and the name of the event at the specific date.
notion image
After connecting this dataset, we need to select the ‘Datetime’ and the ‘Events column’ in the Events section of the model settings.
notion image
As a result, the custom events are considered during the model training and we get binary column(s) for every event with their occurrences in the output.
notion image
The effects of the custom (and country, if present) events on the model can be viewed by enabling ‘Return Events’.
notion image
notion image