分位数检测器

标记超出历史数据某些分位数的异常。这与基于阈值的检测器类似,其中阈值在检测器拟合时作为历史数据的分位数计算。

class darts.ad.detectors.quantile_detector.QuantileDetector(low_quantile=None, high_quantile=None)[源代码]

基类:FittableDetector, _BoundedDetectorMixin

分位数检测器

标志值,分别低于或高于历史数据的 low_quantilehigh_quantile 分位数。

如果为 low_quantilehigh_quantile 提供了一个单一值,则该值将用于序列的所有组成部分。

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

如果 low_quantilehigh_quantile 为 None,则对应的边界将不会被使用。但是,这两个中的至少一个必须被设置。

参数
  • low_quantile (Union[Sequence[float], float, None]) – (序列的)历史数据的分位数,低于该值的值被视为异常。必须在0和1之间。如果是序列,必须与该检测器应用的序列的维度匹配。

  • high_quantile (Union[Sequence[float], float, None]) – (序列的)历史数据的分位数,高于此值的值被视为异常。必须在0到1之间。如果是序列,必须与该检测器应用的序列的维度匹配。

属性

高阈值

低阈值

方法

detect(series[, name])

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

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

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

fit(series)

在给定的时间序列上训练检测器。

fit_detect(series)

在同一序列上训练检测器并检测异常。

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]]]

fit(series)

在给定的时间序列上训练检测器。

参数

series (Union[TimeSeries, Sequence[TimeSeries]]) – 用于训练检测器的时间(序列)序列。

返回

拟合检测器。

返回类型

self

fit_detect(series)

在同一序列上训练检测器并检测异常。

参数

series (Union[TimeSeries, Sequence[TimeSeries]]) – 用于训练和检测异常的时间序列。

返回

二进制预测(如果是异常则为1,否则为0)

返回类型

Union[TimeSeries, Sequence[TimeSeries]]

property high_threshold
property low_threshold