Skip to content

GaussianScorerΒΆ

Univariate Gaussian anomaly detector.

This is a supervised anomaly detector. It fits a Gaussian distribution to the target values. The anomaly score is then computed as so:

score=2βˆ—βˆ£CDF(y)βˆ’0.5∣

This makes it so that the anomaly score is between 0 and 1.

ParametersΒΆ

  • window_size – defaults to None

    Set this to fit the Gaussian distribution over a window of recent values.

  • grace_period – defaults to 100

    Number of samples before which a 0 is always returned. This is handy because the Gaussian distribution needs time to stabilize, and will likely produce overly high anomaly score for the first samples.

ExamplesΒΆ

>>> import random
>>> from river import anomaly

>>> rng = random.Random(42)
>>> detector = anomaly.GaussianScorer()

>>> for y in (rng.gauss(0, 1) for _ in range(100)):
...     detector = detector.learn_one(None, y)

>>> detector.score_one(None, -3)
0.999477...

>>> detector.score_one(None, 3)
0.999153...

>>> detector.score_one(None, 0)
0.052665...

>>> detector.score_one(None, 0.5)
0.383717...

MethodsΒΆ

learn_one

Update the model.

Parameters

  • _
  • y (Union[bool, str, int, numbers.Number])

Returns

SupervisedAnomalyDetector: self

score_one

Return an outlier score.

A high score is indicative of an anomaly. A low score corresponds a normal observation.

Parameters

  • _
  • y (Union[bool, str, int, numbers.Number])

Returns

float: An anomaly score. A high score is indicative of an anomaly. A low score corresponds a