Source code for dtaianomaly.anomaly_detection.baselines._RandomDetector

import numpy as np

from dtaianomaly.anomaly_detection._BaseDetector import BaseDetector, Supervision

__all__ = ["RandomDetector"]


[docs] class RandomDetector(BaseDetector): """ Assign random anomaly scores to the time series observations. Baseline anomaly detector, which assigns random anomaly scores. This detector should only be used for sanity-check, and not to effectively detect anomalies in time series data. Parameters ---------- seed : int, default=None The seed to use for generating anomaly scores. If None, no seed will be used. Examples -------- >>> from dtaianomaly.anomaly_detection import RandomDetector >>> from dtaianomaly.data import demonstration_time_series >>> x, y = demonstration_time_series() >>> baseline = RandomDetector(seed=0).fit(x) >>> baseline.decision_function(x) array([0.63696169, 0.26978671, 0.04097352, ..., 0.70724404, 0.90315986, 0.8944909 ]...) """ seed: int | None def __init__(self, seed: int = None): super().__init__(Supervision.UNSUPERVISED) self.seed = seed def _fit(self, X: np.ndarray, y: np.ndarray = None, **kwargs) -> None: """Should not do anything.""" def _decision_function(self, X: np.ndarray) -> np.array: return np.random.default_rng(seed=self.seed).random(size=X.shape[0])