异常检测工具¶
异常检测模块中常用的函数。
- darts.ad.utils.eval_metric_from_binary_prediction(anomalies, pred_anomalies, window=1, metric='recall')[source]¶
计算预测异常与真实异常之间的分数/指标。
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”(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]¶
计算异常分数与真实异常之间的分数/指标。
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, 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,则在多变量异常检测的情况下将单独绘制每个分量。