Model overview

This page summarises the main model types provided by energy_fault_detector.

For configuration details see Configuration and Sequence models.

Autoencoders

Autoencoders learn a model of normal behaviour and are configured under train.autoencoder in the YAML config.

Class

Typical config names (train.autoencoder.name)

Description

MultilayerAutoencoder

"default", "MultilayerAutoencoder"

Dense symmetric autoencoder for tabular or time-series data treated as independent rows. Good default choice.

ConditionalAE

"ConditionalAE", "ConditionalAutoencoder"

Dense autoencoder where selected features are used as conditions and not reconstructed (e.g. time-of-day).

LSTMSeq2OneAutoencoder

"LSTMSeq2OneAutoencoder", "lstm_seq2one"

Sequence-to-one LSTM autoencoder. Uses windows of historical data to reconstruct the last timestep.

BidirectionalLSTMSeq2OneAutoencoder

"BidirectionalLSTMSeq2OneAutoencoder", "bilstm_seq2one"

Bidirectional LSTM variant of the seq2one model for richer temporal context.

CNNSeq2OneAutoencoder

"CNNSeq2OneAutoencoder", "cnn_seq2one"

CNN-based seq2one autoencoder. Efficient, focuses on local temporal patterns.

LSTMSeqAutoencoder

"LSTMSeqAutoencoder", "lstm_seq2seq"

Sequence-to-sequence LSTM autoencoder. Reconstructs the full window, useful when localisation within the window matters.

CNNAutoencoder

"CNNAutoencoder", "cnn_seq2seq"

Sequence-to-sequence CNN autoencoder using Conv1D/Conv1DTranspose layers.

All sequence models require a sequence_builder block in train.autoencoder.params. See Sequence models for details and examples.

Anomaly scores

Anomaly score classes map reconstruction errors to a scalar anomaly score per sample. They are configured under train.anomaly_score.

Class

Typical config names (train.anomaly_score.name)

Description

RMSEScore

"rmse", "RMSEScore"

Root mean squared error over reconstruction errors. Default choice.

MahalanobisScore

"mahalanobis", "MahalanobisScore"

Mahalanobis distance on (optionally PCA-transformed) reconstruction errors. Captures feature correlations.

Threshold selectors

Threshold selectors map anomaly scores to boolean anomaly decisions and are configured under train.threshold_selector.

Class

Typical config names (train.threshold_selector.name)

Description

QuantileThresholdSelector

"quantile"

Sets the threshold to a fixed quantile of the (normal) anomaly scores. Works without labels.

FbetaSelector

"fbeta", "FbetaSelector"

Chooses the threshold that maximises the F-beta score (requires labels / normal_index).

FDRSelector

"fdr", "FDRSelector"

Chooses the threshold to match a target false discovery rate (requires labels / normal_index).

AdaptiveThresholdSelector

"adaptive_threshold", "AdaptiveThresholdSelector"

Learns an input-dependent threshold using a small regression NN on autoencoder inputs and scores.

For a full reference of model parameters, see the API docs: