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