deepod.models.DeepSADTS

class deepod.models.DeepSADTS(epochs=100, batch_size=64, lr=0.001, network='TCN', seq_len=100, stride=1, rep_dim=128, hidden_dims='100,50', act='ReLU', bias=False, n_heads=8, d_model=512, attn='self_attn', pos_encoding='fixed', norm='LayerNorm', epoch_steps=-1, prt_steps=10, device='cuda', verbose=2, random_state=42)[source]

Deep Semi-supervised Anomaly Detection (ICLR’20) []

This model extends the semi-supervised anomaly detection framework to time-series datasets, aiming to detect anomalies by learning a representation of the data in a lower-dimensional hypersphere.

Parameters:
  • data_type (str, optional) – The type of data, here it’s defaulted to ‘ts’ (time-series).

  • epochs (int, optional) – The number of epochs for training, default is 100.

  • batch_size (int, optional) – The size of the mini-batch for training, default is 64.

  • lr (float, optional) – The learning rate for the optimizer, default is 1e-3.

  • network (str, optional) – The type of network architecture to use, default is ‘TCN’.

  • rep_dim (int, optional) – The size of the representation dimension, default is 128.

  • hidden_dims (Union[list, str, int], optional) –

    The dimensions for hidden layers. It can be a list, a comma-separated string, or a single integer. Default is ‘100,50’.
    • If list, each item is a layer

    • If str, neural units of hidden layers are split by comma

    • If int, number of neural units of single hidden layer

  • act (str, optional) – The activation function to use. Possible values are ‘ReLU’, ‘LeakyReLU’, ‘Sigmoid’, ‘Tanh’, default is ‘ReLU’.

  • bias (bool, optional) – Whether to include a bias term in the layers, default is False.

  • n_heads (int, optional) – The number of heads in a multi-head attention mechanism, default is 8.

  • d_model (int, optional) – The number of dimensions in the transformer model, default is 512.

  • attn (str, optional) – The type of attention mechanism used, default is ‘self_attn’.

  • pos_encoding (str, optional) – The type of positional encoding used in the transformer model, default is ‘fixed’.

  • norm (str, optional) – The type of normalization used in the transformer model, default is ‘LayerNorm’.

  • epoch_steps (int, optional) – The maximum number of steps per epoch, default is -1, indicating that all batches will be processed.

  • prt_steps (int, optional) – The number of epoch intervals for printing progress, default is 10.

  • device (str, optional) – The device to use for training and inference, default is ‘cuda’.

  • verbose (int, optional) – The verbosity mode, default is 2.

  • random_state (int, optional) – The seed for the random number generator, default is 42.

Methods

__init__([epochs, batch_size, lr, network, ...])

Initializes the DeepSADTS model with the provided parameters.

decision_function(X[, return_rep])

Predict raw anomaly scores of X using the fitted detector.

decision_function_update(z, scores)

for any updating operation after decision function

epoch_update()

for any updating operation after each training epoch

fit(X[, y])

Fit detector.

fit_auto_hyper(X[, y, X_test, y_test, ...])

Fit detector.

inference_forward(batch_x, net, criterion)

Performs a forward inference pass.

inference_prepare(X)

Prepares the model for inference by setting up data loaders.

load_model(path)

load_ray_checkpoint(best_config, best_checkpoint)

predict(X[, return_confidence])

Predict if a particular sample is an outlier or not.

save_model(path)

set_seed(seed)

set_tuned_net(config)

set_tuned_params()

training_forward(batch_x, net, criterion)

Performs a forward training pass.

training_prepare(X, y)

Prepares the model for training by setting up data loaders, initializing the network, and defining the loss criterion.

decision_function(X, return_rep=False)

Predict raw anomaly scores of X using the fitted detector.

The anomaly score of an input sample is computed based on the fitted detector. For consistency, outliers are assigned with higher anomaly scores.

Parameters:
  • X (numpy array of shape (n_samples, n_features)) – The input samples. Sparse matrices are accepted only if they are supported by the base estimator.

  • return_rep (boolean, optional, default=False) – whether return representations

Returns:

anomaly_scores – The anomaly score of the input samples.

Return type:

numpy array of shape (n_samples,)

decision_function_update(z, scores)

for any updating operation after decision function

epoch_update()

for any updating operation after each training epoch

fit(X, y=None)

Fit detector. y is ignored in unsupervised methods.

Parameters:
  • X (numpy array of shape (n_samples, n_features)) – The input samples.

  • y (numpy array of shape (n_samples, )) – Not used in unsupervised methods, present for API consistency by convention. used in (semi-/weakly-) supervised methods

Returns:

self – Fitted estimator.

Return type:

object

fit_auto_hyper(X, y=None, X_test=None, y_test=None, n_ray_samples=5, time_budget_s=None)

Fit detector. y is ignored in unsupervised methods.

Parameters:
  • X (numpy array of shape (n_samples, n_features)) – The input samples.

  • y (numpy array of shape (n_samples, )) – Not used in unsupervised methods, present for API consistency by convention. used in (semi-/weakly-) supervised methods

  • X_test (numpy array of shape (n_samples, n_features), default=None) – The input testing samples for hyper-parameter tuning.

  • y_test (numpy array of shape (n_samples, ), default=None) – Label of input testing samples for hyper-parameter tuning.

  • n_ray_samples (int, default=5) – Number of times to sample from the hyperparameter space

  • time_budget_s (int, default=None) – Global time budget in seconds after which all trials of Ray are stopped.

Returns:

config – tuned hyper-parameter

Return type:

dict

inference_forward(batch_x, net, criterion)[source]

Performs a forward inference pass.

Parameters:
  • batch_x (torch.Tensor) – A batch of input data.

  • net (nn.Module) – The neural network model.

  • criterion (Loss) – The loss function used to calculate the anomaly score.

Returns:

The encoded batch of data in the feature space.

s (torch.Tensor):

The anomaly scores for the batch.

Return type:

batch_z (torch.Tensor)

inference_prepare(X)[source]

Prepares the model for inference by setting up data loaders.

Parameters:

X (np.ndarray) – The input feature matrix for inference.

Returns:

The data loader for inference.

Return type:

test_loader (DataLoader)

predict(X, return_confidence=False)

Predict if a particular sample is an outlier or not.

Parameters:
  • X (numpy array of shape (n_samples, n_features)) – The input samples.

  • return_confidence (boolean, optional(default=False)) – If True, also return the confidence of prediction.

Returns:

  • outlier_labels (numpy array of shape (n_samples,)) – For each observation, tells whether it should be considered as an outlier according to the fitted model. 0 stands for inliers and 1 for outliers.

  • confidence (numpy array of shape (n_samples,).) – Only if return_confidence is set to True.

training_forward(batch_x, net, criterion)[source]

Performs a forward training pass.

Parameters:
  • batch_x (tuple) – A batch of input data and labels.

  • net (nn.Module) – The neural network model.

  • criterion (Loss) – The loss function.

Returns:

The computed loss for the batch.

Return type:

loss (torch.Tensor)

training_prepare(X, y)[source]

Prepares the model for training by setting up data loaders, initializing the network, and defining the loss criterion.

Parameters:
  • X (np.ndarray) – The input feature matrix for training.

  • y (np.ndarray) – The target labels where 1 indicates known anomalies.

Returns:

The data loader for training.

net (nn.Module):

The neural network for feature extraction.

criterion (Loss):

The loss function used for training.

Return type:

train_loader (DataLoader)