alibi_detect.od.vaegmm module¶
-
class
alibi_detect.od.vaegmm.
OutlierVAEGMM
(threshold=None, vaegmm=None, encoder_net=None, decoder_net=None, gmm_density_net=None, n_gmm=None, latent_dim=None, samples=10, beta=1.0, recon_features=<function eucl_cosim_features>, data_type=None)[source]¶ Bases:
alibi_detect.base.BaseDetector
,alibi_detect.base.FitMixin
,alibi_detect.base.ThresholdMixin
-
__init__
(threshold=None, vaegmm=None, encoder_net=None, decoder_net=None, gmm_density_net=None, n_gmm=None, latent_dim=None, samples=10, beta=1.0, recon_features=<function eucl_cosim_features>, data_type=None)[source]¶ VAEGMM-based outlier detector.
- Parameters
threshold (
Optional
[float
]) – Threshold used for outlier score to determine outliers.vaegmm (
Optional
[tensorflow.keras.Model]) – A trained tf.keras model if available.encoder_net (
Optional
[tensorflow.keras.Sequential]) – Layers for the encoder wrapped in a tf.keras.Sequential class if no ‘vaegmm’ is specified.decoder_net (
Optional
[tensorflow.keras.Sequential]) – Layers for the decoder wrapped in a tf.keras.Sequential class if no ‘vaegmm’ is specified.gmm_density_net (
Optional
[tensorflow.keras.Sequential]) – Layers for the GMM network wrapped in a tf.keras.Sequential class.latent_dim (
Optional
[int
]) – Dimensionality of the latent space.samples (
int
) – Number of samples sampled to evaluate each instance.beta (
float
) – Beta parameter for KL-divergence loss term.recon_features (
Callable
) – Function to extract features from the reconstructed instance by the decoder.data_type (
Optional
[str
]) – Optionally specifiy the data type (tabular, image or time-series). Added to metadata.
- Return type
None
-
fit
(X, loss_fn=<function loss_vaegmm>, w_recon=1e-07, w_energy=0.1, w_cov_diag=0.005, optimizer=tensorflow.keras.optimizers.Adam, cov_elbo={'sim': 0.05}, epochs=20, batch_size=64, verbose=True, log_metric=None, callbacks=None)[source]¶ Train VAEGMM model.
- Parameters
X (numpy.ndarray) – Training batch.
loss_fn (tensorflow.keras.losses) – Loss function used for training.
w_recon (
float
) – Weight on elbo loss term if default loss_vaegmm.w_energy (
float
) – Weight on sample energy loss term if default loss_vaegmm loss fn is used.w_cov_diag (
float
) – Weight on covariance regularizing loss term if default loss_vaegmm loss fn is used.optimizer (tensorflow.keras.optimizers) – Optimizer used for training.
cov_elbo (
dict
) – Dictionary with covariance matrix options in case the elbo loss function is used. Either use the full covariance matrix inferred from X (dict(cov_full=None)), only the variance (dict(cov_diag=None)) or a float representing the same standard deviation for each feature (e.g. dict(sim=.05)).epochs (
int
) – Number of training epochs.batch_size (
int
) – Batch size used for training.verbose (
bool
) – Whether to print training progress.log_metric (
Optional
[Tuple
[str
, tensorflow.keras.metrics]]) – Additional metrics whose progress will be displayed if verbose equals True.callbacks (
Optional
[tensorflow.keras.callbacks]) – Callbacks used during training.
- Return type
None
-
infer_threshold
(X, threshold_perc=95.0)[source]¶ Update threshold by a value inferred from the percentage of instances considered to be outliers in a sample of the dataset.
- Parameters
X (numpy.ndarray) – Batch of instances.
threshold_perc (
float
) – Percentage of X considered to be normal based on the outlier score.
- Return type
None
-
predict
(X, return_instance_score=True)[source]¶ Compute outlier scores and transform into outlier predictions.
- Parameters
X (numpy.ndarray) – Batch of instances.
return_instance_score (
bool
) – Whether to return instance level outlier scores.
- Return type
- Returns
Dictionary containing ‘meta’ and ‘data’ dictionaries.
’meta’ has the model’s metadata.
’data’ contains the outlier predictions and instance level outlier scores.
-