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:
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¶
clone
Return a fresh estimator with the same parameters.
The clone has the same parameters but has not been updated with any data. This works by looking at the parameters from the class signature. Each parameter is either - recursively cloned if it's a River classes. - deep-copied via copy.deepcopy
if not. If the calling object is stochastic (i.e. it accepts a seed parameter) and has not been seeded, then the clone will not be idempotent. Indeed, this method's purpose if simply to return a new instance with the same input parameters.
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