异常检测工具¶
异常检测模块中常用的函数。
- 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,则在多变量异常检测的情况下将单独绘制每个分量。