tempor.methods.prediction.one_off.regression.plugin_nn_regressor module

One-off regression plugin based on Neural Networks.

class tempor.methods.prediction.one_off.regression.plugin_nn_regressor.NeuralNetRegressorParams(n_static_units_hidden: int = 100, n_static_layers_hidden: int = 2, n_temporal_units_hidden: int = 102, n_temporal_layers_hidden: int = 2, n_iter: int = 500, mode: Literal[LSTM] | Literal[GRU] | Literal[RNN] | Literal[Transformer] | Literal[MLSTM_FCN] | Literal[TCN] | Literal[InceptionTime] | Literal[InceptionTimePlus] | Literal[XceptionTime] | Literal[ResCNN] | Literal[OmniScaleCNN] | Literal[XCM] = 'RNN', n_iter_print: int = 10, batch_size: int = 100, lr: float = 0.001, weight_decay: float = 0.001, window_size: int = 1, device: str | None = None, dataloader_sampler: Literal[BatchSampler] | Literal[RandomSampler] | Literal[Sampler] | Literal[SequentialSampler] | Literal[SubsetRandomSampler] | Literal[WeightedRandomSampler] | None = None, dropout: float = 0, nonlin: Literal[none] | Literal[elu] | Literal[relu] | Literal[leaky_relu] | Literal[selu] | Literal[tanh] | Literal[sigmoid] | Literal[softmax] | Literal[gumbel_softmax] = 'relu', random_state: int = 0, clipping_value: int = 1, patience: int = 20, train_ratio: float = 0.8)[source]

Bases: object

Initialization parameters for NeuralNetRegressor.

n_static_units_hidden : int = 100

Number of hidden units for the static features.

n_static_layers_hidden : int = 2

Number of hidden layers for the static features.

n_temporal_units_hidden : int = 102

Number of hidden units for the temporal features.

n_temporal_layers_hidden : int = 2

Number of hidden layers for the temporal features.

n_iter : int = 500

Number of epochs.

mode : Literal[LSTM] | Literal[GRU] | Literal[RNN] | Literal[Transformer] | Literal[MLSTM_FCN] | Literal[TCN] | Literal[InceptionTime] | Literal[InceptionTimePlus] | Literal[XceptionTime] | Literal[ResCNN] | Literal[OmniScaleCNN] | Literal[XCM] = 'RNN'

TSModelMode.

Type:

Core neural net architecture. Available options

n_iter_print : int = 10

Number of epochs to print the loss.

batch_size : int = 100

Batch size.

lr : float = 0.001

Learning rate.

weight_decay : float = 0.001

l2 (ridge) penalty for the weights.

window_size : int = 1

How many hidden states to use for the outcome.

device : str | None = None

String representing PyTorch device. If None, DEVICE.

dataloader_sampler : Literal[BatchSampler] | Literal[RandomSampler] | Literal[Sampler] | Literal[SequentialSampler] | Literal[SubsetRandomSampler] | Literal[WeightedRandomSampler] | None = None

Custom data sampler for training.

dropout : float = 0

Dropout value.

nonlin : Literal[none] | Literal[elu] | Literal[relu] | Literal[leaky_relu] | Literal[selu] | Literal[tanh] | Literal[sigmoid] | Literal[softmax] | Literal[gumbel_softmax] = 'relu'

Nonlin.

Type:

Activation for hidden layers. Available options

random_state : int = 0

Random seed.

clipping_value : int = 1

Gradients clipping value. Zero disables the feature.

patience : int = 20

How many epoch * n_iter_print to wait without loss improvement.

train_ratio : float = 0.8

Train/test split ratio.

class tempor.methods.prediction.one_off.regression.plugin_nn_regressor.NeuralNetRegressor(**params: Any)[source]

Bases: BaseOneOffRegressor

Neural-net regressor.

Parameters:
**params : Any

Parameters and defaults as defined in NeuralNetRegressorParams.

Example

>>> from tempor import plugin_loader
>>>
>>> dataset = plugin_loader.get("prediction.one_off.sine", plugin_type="datasource").load()
>>>
>>> # Load the model:
>>> model = plugin_loader.get("prediction.one_off.regression.nn_regressor", n_iter=50)
>>>
>>> # Train:
>>> model.fit(dataset)
NeuralNetRegressor(...)
>>>
>>> # Predict:
>>> assert model.predict(dataset).numpy().shape == (len(dataset), 1)
category : ClassVar[plugin_typing.PluginCategory] = 'prediction.one_off.regression'

Plugin category, such as 'prediction.one_off.classification'. Must be set by the plugin class using @register_plugin.

name : ClassVar[plugin_typing.PluginName] = 'nn_regressor'

Plugin name, such as 'my_nn_classifier'. Must be set by the plugin class using @register_plugin.

plugin_type : ClassVar[plugin_typing.PluginTypeArg] = 'method'

Plugin type, such as 'method'. May be optionally set by the plugin class using @register_plugin, else will set the default plugin type.

ParamsDefinition

alias of NeuralNetRegressorParams

params : NeuralNetRegressorParams
static hyperparameter_space(*args: Any, **kwargs: Any) list[Params][source]

The hyperparameter search domain, used for tuning.

Can provide variadics *args and **kwargs, these will be received from sample_hyperparameters.