DeepARNetwork

class DeepARNetwork(lstm_units: int = None, dense_units: int = None, dropout: float = 0.1)[source]

Bases: BaseDeepLearningNetwork

DeepAR Network for probabilistic time series forecasting.

A deep learning architecture that combines LSTM encoding with probabilistic output layers to generate forecasts with uncertainty estimates.

Parameters:
lstm_unitsint, default=None

Number of LSTM units. If None, calculated as 4 * (1 + log(n_features)^4).

dense_unitsint, default=None

Number of dense layer units. If None, calculated as 4 * (1 + log(n_features)).

dropoutfloat, default=0.1

Dropout rate applied in LSTM layer for regularization.

Notes

DeepAR uses probabilistic outputs by modeling the conditional distribution of future values given past observations. The network outputs parameters of a Gaussian distribution for each prediction step.

References

[1]

Salinas, D., Flunkert, V., Gasthaus, J., & Januschowski, T. (2020). DeepAR: Probabilistic forecasting with autoregressive recurrent networks. International journal of forecasting, 36(3), 1181-1191.

Examples

>>> from aeon.networks._deepar import DeepARNetwork
>>> network = DeepARNetwork()
>>> input_layer, output = network.build_network(input_shape=(10, 3))
>>> input_layer.shape, output.shape
((None, 10, 3), (None, 2, 3))

Methods

build_network(input_shape, **kwargs)

Build the complete DeepAR architecture.

build_network(input_shape: tuple, **kwargs) tuple[source]

Build the complete DeepAR architecture.

Constructs an LSTM encoder followed by dense layers that output parameters for a Gaussian distribution (mean and variance).

Parameters:
input_shapetuple

Shape of input data (n_timepoints, n_channels).

**kwargs

Additional keyword arguments (unused).

Returns:
tuple

A tuple containing (input_layer, gaussian_outputs) where gaussian_outputs is a list [mean, sigma] representing the Gaussian distribution parameters.

Notes

The network outputs two tensors representing the mean and standard deviation of a Gaussian distribution for probabilistic forecasting.