异常检测工具

在整个异常检测模块中使用的常见功能。

darts.ad.utils.eval_metric_from_binary_prediction(anomalies, pred_anomalies, window=1, metric='recall')[源代码]

计算预测异常与真实异常之间的分数/度量。

pred_anomaliesanomalies 必须有:

  • 相同的维度(时间步数和组件/列数),

  • 属于两类的二进制值(如果是异常则为 1,否则为 0

如果为 anomalies 提供了一个序列,而 pred_anomalies 包含多个序列,函数会将 anomalies 视为 pred_scores 中所有分数的真实异常。

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

  • pred_anomalies (Union[TimeSeries, Sequence[TimeSeries]]) – 预测的二进制异常序列。

  • window (Union[int, Sequence[int]]) – 整数值,表示 pred_scores 中每个点代表的过去样本数量。该参数将用于转换 anomalies。如果是一个整数列表,长度必须与 pred_scores 中的序列数量匹配。如果是一个整数,该值将用于 pred_scoresanomalies 中的每个序列。

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

返回类型

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

返回

  • float – 单变量 pred_anomalies 序列(仅有一个组件/列)的单个分数。

  • Sequence[float] – 一个分数序列(列表),用于:

    • 多变量 pred_anomalies 序列(多个组件)。为每个组件提供一个分数。

    • 一系列(列表)的单变量 pred_anomalies 序列。为每个序列给出一个分数。

  • Sequence[Sequence[float]] – 一个多变量 pred_anomalies 序列的分数序列。为每个序列(外部序列)和组件(内部序列)提供一个分数。

darts.ad.utils.eval_metric_from_scores(anomalies, pred_scores, window=1, metric='AUC_ROC')[源代码]

计算异常分数与真实异常之间的得分/指标。

anomaliespred_scores 必须具有相同的形状。anomalies 必须是二进制的,并且其值属于两个类别(0 和 1)。

如果为 anomalies 提供了一个序列,而 pred_scores 包含多个序列,该函数会将 anomalies 视为 pred_scores 中所有分数的实际异常值。

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

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

  • window (Union[int, Sequence[int]]) – 整数值,表示 pred_scores 中每个点代表的过去样本数量。该参数将用于转换 anomalies。如果是一个整数列表,长度必须与 pred_scores 中的序列数量匹配。如果是一个整数,该值将用于 pred_scoresanomalies 中的每个序列。

  • metric (Literal[‘AUC_ROC’, ‘AUC_PR’]) – 要使用的度量函数名称。必须是以下之一:“AUC_ROC”(接收者操作特征曲线下面积)和“AUC_PR”(从分数计算的平均精度)。默认值:“AUC_ROC”。

返回类型

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

返回

  • float – 单变量 pred_scores 序列(仅有一个组件/列)的单个分数/指标。

  • Sequence[float] – 一个分数序列(列表),用于:

    • 多变量 pred_scores 序列(多个组成部分)。为每个组成部分提供一个分数。

    • 一系列(列表)的单变量 pred_scores 序列。为每个序列提供一个分数。

  • Sequence[Sequence[float]] – 一个多元 pred_scores 序列的分数序列。为每个序列(外部序列)和组件(内部序列)提供一个分数。

darts.ad.utils.show_anomalies_from_scores(series, anomalies=None, pred_series=None, pred_scores=None, window=1, names_of_scorers=None, title=None, metric=None)[源代码]

绘制由异常检测模型生成的结果。

图表将由以下部分组成:
  • 实际的系列本身以及模型的输出(如果有)

  • 每个评分器的异常分数。具有不同窗口的评分器将被分开。

  • 实际的异常,如果有的话。

如果 pred_series 是随机的(即,如果它有多个样本),该函数将绘制:
  • 每个时间戳的平均值

  • 上界分位数 0.95

  • 分位数 0.05 作为下界

可能做到:
  • 使用 title 参数为图片添加标题

  • 使用 names_of_scorers 为评分者提供个性化名称

  • 显示每个异常分数(AUC_ROC 或 AUC_PR)的指标结果,如果给出了实际的异常值

参数
  • series (TimeSeries) – 要从中可视化异常的实际序列。

  • anomalies (TimeSeries) – 异常的真实情况(如果是异常则为1,否则为0)。

  • pred_series (TimeSeries) – 给定 series 作为输入的模型输出(可以是随机的)。

  • pred_scores (Union[TimeSeries, Sequence[TimeSeries]]) – 给定模型的输出和 series,评分器的输出。

  • window (Union[int, Sequence[int]]) – 每个异常分数的窗口参数。默认值:1。如果给定了一个异常分数列表,则每个分数将使用相同的默认窗口。

  • names_of_scorers (Union[str, Sequence[str]]) – 分数的名称。必须是一个与异常模型中评分器数量相等长度的列表。仅在 pred_scores 不为 None 时有效。

  • title (str) – 图的标题

  • metric (Optional[Literal[‘AUC_ROC’, ‘AUC_PR’], None]) – 可选地,指定要使用的度量函数名称。必须是 “AUC_ROC”(接收者操作特征曲线下的面积)或 “AUC_PR”(从分数计算的平均精度)之一。仅在 pred_scores 不为 None 时有效。默认值:”AUC_ROC”。