Zurück zu den Modellen
Forecaster

ESRNNForecaster

Exponential Smoothing Recurrant Neural Network.

This model combines Exponential Smoothing (ES) and (LSTM) networks for time series forecasting. ES is used to balance the level and seasonality of the series. This method has been proposed in [1].

Schnellstart

python
from sktime.forecasting.es_rnn import ESRNNForecaster

estimator = ESRNNForecaster(hidden_size=10, num_layer=5, season1_length=12, season2_length=6, seasonality_type='single', window=10, pred_len=3, stride=1, batch_size=32, num_epochs=1000, criterion=None, optimizer='Adam', lr=0.1, optimizer_kwargs=None, criterion_kwargs=None, custom_dataset_train=None, custom_dataset_pred=None)

Parameter(15)

hidden_sizeint
Number of features in the hidden state
num_layerint
Number of layers
seasonality_typestring
Type of seasonality_type, could be zero,single or double
season1_lengthint
Period of season 1
season2_lengthint
Period of season 2
strideint
stride for sliding window
batch_sizeint
size of batch during training
num_epochsint
number of epochs during training
criteriontorch.nn Loss Function, default=torch.nn.MSELoss
loss function to be used for training
criterion_kwargsdict, default=None
keyword arguments to pass to criterion
optimizertorch.optim.Optimizer, default=torch.optim.Adam
optimizer to be used for training
optimizer_kwargsdict, default=None
keyword arguments to pass to optimizer
windowint
Size of Input window, default=10
pred_lenint
Prediction length, i.e., the number of future time steps to forecast. Defines the network output dimension, default=3
lrint
Learning rate for training

Beispiele

>>> from sktime.forecasting.es_rnn import ESRNNForecaster
>>> from sktime.datasets import load_airline
>>> from sktime.transformations.boxcox import LogTransformer
>>> y = load_airline ()
>>> scaler = LogTransformer ()
>>> forecaster = ESRNNForecaster (15, 6, 12, 6, 'double', 20, 1, 32, 100, 'MSE')
>>> y_new = scaler. fit_transform (y)
>>> forecaster. fit (y_new, fh = [1, 2, 3 ])
>>> y_pred = forecaster. predict ()
>>> y_pred = scaler. inverse_transform (y_pred)

Referenzen

[1]

Smyl, S. 2020.

A hybrid method of exponential smoothing and recurrent neural networks for time series forecasting. https://www.sciencedirect.com/science/article/pii/S0169207019301153