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)Tags
Fähigkeiten
- Kategoriale Merkmale
- Multivariat
- In-Sample-Vorhersagen: Nicht unterstützt
- Prognoseintervalle: Nicht unterstützt
- In-Sample-Prognoseintervalle: Nicht unterstützt
- Fehlende Werte: Nicht unterstützt
- Exogene Variablen: Nicht unterstützt
Eigenschaften
- Prognosehorizont beim Fit nötigrequires-fh-in-fit
- Ja
- X und y brauchen denselben IndexX-y-must-have-same-index
- Ja
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