异常检测工具¶
在整个异常检测模块中使用的常见功能。
- darts.ad.utils.eval_metric_from_binary_prediction(anomalies, pred_anomalies, window=1, metric='recall')[源代码]¶
计算预测异常与真实异常之间的分数/度量。
pred_anomalies 和 anomalies 必须有:
相同的维度(时间步数和组件/列数),
属于两类的二进制值(如果是异常则为 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_scores 和 anomalies 中的每个序列。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')[源代码]¶
计算异常分数与真实异常之间的得分/指标。
anomalies 和 pred_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_scores 和 anomalies 中的每个序列。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”。