阈值检测器

基于用户给定阈值检测异常的检测器。该检测器将时间序列值与用户给定的阈值进行比较,并在值超出阈值时将时间点识别为异常。

class darts.ad.detectors.threshold_detector.ThresholdDetector(low_threshold=None, high_threshold=None)[源代码]

基类:Detector, _BoundedDetectorMixin

阈值检测器

标志值,分别低于 low_threshold 或高于 high_threshold

如果为 low_thresholdhigh_threshold 提供了一个单一值,这个相同的值将用于序列的所有组成部分。

如果为参数 low_threshold 和/或 high_threshold 提供了值序列,它们的长度必须相同,与传递给 detect() 的序列的维度匹配,或者长度为 1。在后一种情况下,这个单一值将用于序列的所有组成部分。

如果 low_thresholdhigh_threshold 为 None,则不会使用相应的边界。但是,这两个值中至少有一个必须设置。

参数
  • low_threshold (Union[int, float, Sequence[float], None]) – (序列的)下界。如果是一个序列,必须与应用此检测器的序列的维度相匹配。

  • high_threshold (Union[int, float, Sequence[float], None]) – (序列的)上界。如果是一个序列,必须与应用此检测器的序列的维度相匹配。

属性

高阈值

低阈值

方法

detect(series[, name])

检测给定时间序列中的异常。

eval_metric(anomalies, pred_scores[, ...])

根据真实异常对结果进行评分。

detect(series, name='series')

检测给定时间序列中的异常。

参数
  • series (Union[TimeSeries, Sequence[TimeSeries]]) – 用于检测异常的(序列)系列。

  • name (str) – series 的名称。

返回

二元预测(如果被视为异常则为1,否则为0)

返回类型

Union[TimeSeries, Sequence[TimeSeries]]

eval_metric(anomalies, pred_scores, window=1, metric='recall')

根据真实异常对结果进行评分。

参数
  • anomalies (Union[TimeSeries, Sequence[TimeSeries]]) – 地面真值二进制异常序列(1 表示异常,0 表示正常)。

  • pred_scores (Union[TimeSeries, Sequence[TimeSeries]]) – 估计的异常分数序列(序列),指示每个大小为 w 的窗口的异常程度。

  • window (int) – 整数值,表示 pred_scores 中每个点代表的过去样本数量。

  • metric (Literal[‘recall’, ‘precision’, ‘f1’, ‘accuracy’]) – 要使用的度量函数名称。必须是以下之一:“recall”、“precision”、“f1”和“accuracy”。默认值:“recall”。

返回

每个异常分数的指标结果

返回类型

Union[float, Sequence[float], Sequence[Sequence[float]]]

property high_threshold
property low_threshold