Skip to content

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:
cutoff

Cut-off = “present time” state of forecaster.

fh

Forecasting horizon that was passed.

is_fitted

Whether fit has been called.

state

State 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.