四分位距 (IQR) 检测器

通过历史数据 IQR(第三四分位数和第一四分位数之间)与其差值的一定因子(通常为 1.5)来标记超出 IQR 的异常。这类似于基于阈值的检测器,但阈值是在拟合检测器时根据历史数据 IQR 的距离计算的。

class darts.ad.detectors.iqr_detector.IQRDetector(scale=1.5)[source]

Bases: QuantileDetector

IQR 检测器

将超出四分位距 (IQR) 超过 IQR 值一定因子的值标记为异常。该因子通过 scale 参数传入。

如果为 scale 提供单个值,则该相同值将用于序列的所有分量。

如果为 scale 参数提供值序列,则其长度必须与传入序列的维度匹配。

参数

scale (Union[Sequence[float], float]) – 用于指示与 IQR 的距离构成异常的比例(或比例序列)。默认为 1.5。必须为非负数。如果是序列,则其长度必须与应用此检测器的序列维度匹配。

属性

high_threshold

low_threshold

方法

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