异常检测工具

异常检测模块中常用的函数。

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

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

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”(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')[source]

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

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, component_wise=False)[source]

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

图表将包含以下内容:
  • 实际时间序列本身,以及模型的输出(如果给出)

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

  • 真实异常,如果给出的话。

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

  • 用于表示上限的 0.95 分位数

  • 用于表示下限的 0.05 分位数

可以
  • 使用参数 title 为图表添加标题

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

  • 如果给出真实异常,则显示每个异常分数对应的指标结果 (AUC_ROC 或 AUC_PR)

参数
  • series (TimeSeries) – 用于可视化异常的实际时间序列。

  • anomalies (Optional[TimeSeries, None]) – 异常的真实值(1 表示异常,0 表示非异常)。

  • pred_series (Optional[TimeSeries, None]) – 以 series 作为输入时模型的输出(可以是随机的)。

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

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

  • names_of_scorers (Union[str, Sequence[str], None]) – 分数的名称。必须是一个列表,其长度等于 anomaly_model 中评分器的数量。仅当 pred_scores 不是 None 时有效。

  • title (Optional[str, None]) – 图表标题

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

  • component_wise (bool) – 如果为 True,则在多变量异常检测的情况下将单独绘制每个分量。