SCINetForecaster
SCINetForecaster
- class SCINetForecaster(seq_len, pred_len=None, *, num_epochs=16, batch_size=8, criterion=None, criterion_kwargs=None, optimizer=None, optimizer_kwargs=None, lr=0.001, custom_dataset_train=None, custom_dataset_pred=None, hid_size=1, num_stacks=1, num_levels=3, num_decoder_layer=1, concat_len=0, groups=1, kernel=5, dropout=0.5, single_step_output_One=0, positionalE=False, modified=True, RIN=False)[source]
SCINet Forecaster.
Implementation of the SCINet forecaster, by Minhao Liu* [1].
Core logic is directly copied from the curelab SCINet implementation [2], which is unfortunately not available as a package.
- Parameters:
- seq_lenint
Length of the input sequence. Ensure seq_len is divisible by 2^num_levels.
- pred_lenint, optional
Length of prediction (forecast horizon). Required for pretraining if fh is not passed to pretrain(). If None, will be determined from fh during fit() or pretrain().
- num_epochsint, default=16
Number of epochs to train the model.
- batch_sizeint, default=8
Number of training examples in each batch.
- criteriontorch.nn Loss Function, default=None
Loss function to be used for training. If not provided, a default such as torch.nn.MSELoss is often used.
- criterion_kwargsdict, default=None
Keyword arguments to pass to the criterion (loss function).
- optimizertorch.optim.Optimizer, default=None
Optimizer to be used for training. If not provided, a default such as torch.optim.Adam is commonly used.
- optimizer_kwargsdict, default=None
Keyword arguments to pass to the optimizer.
- lrfloat, default=0.001
Learning rate for the optimizer.
- custom_dataset_trainDataset, default=None
A custom dataset to be used for training. If not provided, the default dataset structure is used.
- custom_dataset_predDataset, default=None
A custom dataset to be used for prediction.
- hid_sizeint, default=1
Size of the hidden layers in the model.
- num_stacksint, default=1
Number of SCINet stacks to use in the model.
- num_levelsint, default=3
Number of levels (depth) in each stack.
- num_decoder_layerint, default=1
Number of layers in the decoder portion of the model.
- concat_lenint, default=0
Length of input to be concatenated in the skip connection.
- groupsint, default=1
Number of groups in convolution layers for grouped convolutions.
- kernelint, default=5
Kernel size for convolution layers.
- dropoutfloat, default=0.5
Dropout rate to apply in the network.
- single_step_output_Oneint, default=0
Determines whether to output a single step (1) or multiple steps (0).
- positionalEbool, default=False
Enables or disables the use of positional encoding.
- modifiedbool, default=True
Indicates whether to use the modified version of the SCINet model.
- RINbool, default=False
Flag to enable or disable the use of RevIN (Reversible Instance Normalization).
- Attributes:
cutoffCut-off = “present time” state of forecaster.
fhForecasting horizon that was passed.
is_fittedWhether
fithas been called.stateState of the estimator.
- Raises:
- AssertionError
If seq_len is not divisible by 2^num_levels.
References
[1]Minhao Liu*, Ailing Zeng, Muxi Chen, Zhijian Xu, Qiuxia Lai,
Lingna Ma, Qiang Xu* SCINet: Time Series Modeling and Forecasting with Sample Convolution and Interaction
Examples
>>> from sktime.forecasting.scinet import SCINetForecaster >>> from sktime.datasets import load_airline >>> model = SCINetForecaster(seq_len=8) >>> y = load_airline() >>> model.fit(y, fh=[1, 2, 3]) SCINetForecaster(seq_len=8) >>> y_pred = model.predict() >>> y_pred 1961-01 759.448425 1961-02 291.098541 1961-03 566.977295 Freq: M, Name: Number of airline passengers, dtype: float32
Methods
build_pytorch_pred_dataloader(y, fh)Build PyTorch DataLoader for prediction.
build_pytorch_train_dataloader(y)Build PyTorch DataLoader for training.
check_is_fitted([method_name])Check if the estimator has been fitted.
clone()Obtain a clone of the object with same hyper-parameters and config.
clone_tags(estimator[, tag_names])Clone tags from another object as dynamic override.
create_test_instance([parameter_set])Construct an instance of the class, using first test parameter set.
create_test_instances_and_names([parameter_set])Create list of all test instances and a list of names for them.
fit(y[, X, fh])Fit forecaster to training data.
fit_predict(y[, X, fh, X_pred])Fit and forecast time series at future horizon.
get_class_tag(tag_name[, tag_value_default])Get class tag value from class, with tag level inheritance from parents.
get_class_tags()Get class tags from class, with tag level inheritance from parent classes.
get_config()Get config flags for self.
get_fitted_params([deep])Get fitted parameters.
get_param_defaults()Get object's parameter defaults.
get_param_names([sort])Get object's parameter names.
get_params([deep])Get a dict of parameters values for this object.
get_pretrained_params([deep])Get pretrained parameters of this estimator.
get_tag(tag_name[, tag_value_default, ...])Get tag value from instance, with tag level inheritance and overrides.
get_tags()Get tags from instance, with tag level inheritance and overrides.
get_test_params([parameter_set])Return testing parameter settings for the estimator.
get_y_true(y)Get y_true values for validation.
is_composite()Check if the object is composed of other BaseObjects.
load_from_path(serial)Load object from file location.
load_from_serial(serial)Load object from serialized memory container.
predict([fh, X])Forecast time series at future horizon.
predict_interval([fh, X, coverage])Compute/return prediction interval forecasts.
predict_proba([fh, X, marginal])Compute/return fully probabilistic forecasts.
predict_quantiles([fh, X, alpha])Compute/return quantile forecasts.
predict_residuals([y, X])Return residuals of time series forecasts.
predict_var([fh, X, cov])Compute/return variance forecasts.
pretrain(y[, X, fh])Pre-train forecaster on panel (global) data.
reset()Reset the object to a clean post-init state.
save([path, serialization_format])Save serialized self to bytes-like object or to (.zip) file.
score(y[, X, fh])Scores forecast against ground truth, using MAPE (non-symmetric).
set_config(**config_dict)Set config flags to given values.
set_params(**params)Set the parameters of this object.
set_random_state([random_state, deep, ...])Set random_state pseudo-random seed parameters for self.
set_tags(**tag_dict)Set instance level tag overrides to given values.
update(y[, X, update_params])Update cutoff value and, optionally, fitted parameters.
update_predict(y[, cv, X, update_params, ...])Make predictions and update model iteratively over the test set.
update_predict_single([y, fh, X, update_params])Update model with new data and make forecasts.

