gives a list of the examplei that are considered anomalous with respect to the other examples.


gives the specified property related to the anomaly computation.


gives the properties propi.


finds anomalies in data using the given AnomalyDetectorFunction[] or LearnedDistribution[].


gives properties related to the anomaly computation.

Details and Options

  • FindAnomalies can be used on many types of data, including numerical, nominal and images.
  • Each examplei can be a single data element, a list of data elements or an association of data elements. Examples can also be given as a Dataset object.
  • FindAnomalies attempts to model the distribution of non-anomalous data in order to detect anomalies (i.e. "out-of-distribution" examples). Examples are considered anomalous when their RarerProbability is below the value specified for AcceptanceThreshold.
  • In FindAnomalies[AnomalyDetectorFunction[],data], if data comes from the same distribution as the training examples for the detector, AcceptanceThreshold corresponds to the anomaly detection false-positive rate.
  • In FindAnomalies[,props], possible properties include:
  • "Anomalies"examples that are considered anomalous
    "AnomalyCount"number of examples that are considered anomalous
    "AnomalyBooleanList"Boolean values indicating whether examples are anomalous
    "AnomalyPositions"list of anomaly positions
    "AnomalyRarerProbabilities"rarer probabilities of anomalous examples
    "NonAnomalies"examples that are considered nonanomalous
    "RarerProbabilities"probability to generate a sample with lower PDF than data
  • The following options can be given:
  • AcceptanceThreshold0.001RarerProbability threshold to consider an example anomalous
    FeatureExtractorIdentityhow to extract features from which to learn
    FeatureNamesAutomaticfeature names to assign for input data
    FeatureTypesAutomaticfeature types to assume for input data
    MethodAutomaticwhich modeling algorithm to use
    PerformanceGoalAutomaticaspects of performance to optimize
    RandomSeeding1234what seeding of pseudorandom generators should be done internally
    TimeGoalAutomatichow long to spend training the detector
    TrainingProgressReportingAutomatichow to report progress during training
    ValidationSetAutomaticthe set of data on which to evaluate the model during training
  • Possible settings for PerformanceGoal include:
  • "Quality"maximize the modeling quality of the detector
    "Speed"maximize speed for detecting anomalies
    Automaticautomatic tradeoff among speeds, quality and memory
    {goal1,goal2,}automatically combine goal1, goal2, etc.
  • Possible settings for Method are as given in LearnDistribution[].
  • The following settings for TrainingProgressReporting can be used:
  • "Panel"show a dynamically updating graphical panel
    "Print"periodically report information using Print
    "ProgressIndicator"show a simple ProgressIndicator
    "SimplePanel"dynamically updating panel without learning curves
    Nonedo not report any information
  • FindAnomalies[,FeatureExtractor"Minimal"] indicates that the internal preprocessing should be as simple as possible.


open allclose all

Basic Examples  (3)

Find anomalous examples on a numeric dataset:

Find anomalous examples in a dataset containing numeric and nominal variables:

Generate 100 colors following a given distribution:

Add out-of-distribution colors and attempt to detect them:

Scope  (3)

Train a distribution on colors:

Use the trained distribution to find anomalies:

Train an AnomalyDetectorFunction on a two-dimensional array of pseudorandom real numbers:

Use the trained AnomalyDetectorFunction to find anomalies in new examples:

Use the detector function to find anomalies, their corresponding positions and non-anomalous cases:

Obtain a random sample of training and test datasets of images:

Add anomalous examples to corrupt the datasets:

Train a distribution on images:

Use the trained distribution to find anomalous examples in the test set:

Options  (5)

AcceptanceThreshold  (1)

Create and visualize random 3D vectors with anomalies:

Find anomalous examples and visualize them:

Change the anomaly detection false-positive rate by specifying the AcceptanceThreshold:

Method  (1)

Obtain a dataset of images:

Add out-of-distribution examples to the dataset:

Find anomalies in the dataset using the "Multinormal" method:

Find anomalies in the dataset using the "KernelDensityEstimation" method:

PerformanceGoal  (1)

Obtain a dataset of images:

Find 1 percentile of the most uncommon examples in the dataset by specifying the PerformanceGoal:

Find the most uncommon examples in the dataset with the default PerformanceGoal:

TimeGoal  (1)

Obtain a dataset of images and find the most uncommon examples by specifying the time goal:

Find the most uncommon examples by specifying a different time goal:

TrainingProgressReporting  (1)

Obtain a dataset of images:

Show training progress interactively without the plots:

Print the training progress periodically during training:

Show a simple progress indicator:

Applications  (4)

Obtain a dataset of images:

Find around 0.1 percentile of the most uncommon examples in the dataset:

Obtain a dataset of images:

Add anomalous examples to the test set:

Train an anomaly detector on the training set:

Find anomalous examples in the test set:

Obtain a dataset related to features of moons of Jupiter:

Find anomalous examples in the dataset:

Find anomalous examples with a higher RarerProbability threshold value:

Obtain time-value pairs of a given time series:

Partition the time-value pairs to a list of consecutive windows:

Attempt to find anomalous events and visualize them:

Introduced in 2019
Updated in 2020