计算评价异常检测效果(或精度)的标准
评价时间序列异常检测的效果(或精度)的标准
TP 为真正例(True Positive)
表示模型预测为正类且实际也为正类的样本数,即正样本被正确识别的数量。
FP 为假正例(False Positive)
表示模型预测为正类但实际为负类的样本数,即误报的负样本数量。
TN 为真负例(True Negative)
表示模型预测为负类且实际也为负类的样本数,即负样本被正确识别的数量。
FN 为假负例(False Negative)
表示模型预测为负类但实际为正类的样本数,即漏报的正样本数量。
准确率(Accuracy)
正确识别的异常点数量与总样本数的比率。 准确率 Accuracy = (TP + TN) / (TP + FP + TN + FN)
精确率(Precision)
被正确标记为异常的数据点数量与所有标记为异常的数据点数量的比率。 精确率 Precision = TP / (TP + FP)
召回率(敏感度)(Recall)
被正确标记为异常的数据点数量与所有真实异常数据点数量的比率。 召回率 Recall = TP / (TP + FN)
F1 分数
综合考虑精确率和召回率的指标。 F1 分数 F1 = 2 Precision Recall / (Precision + Recall)
计算代码
介绍
使用 sklearn.metrics 的方法计算 混淆矩阵 从而得出 TN、FP、FN、TP 在 混淆矩阵 中,通常约定: 0 表示负例(Negative) ; 1 表示正例(Positive) 通常 负例是“正常”或“非异常” ; 正例是“异常”或“错误”
代码
outliers 为异常值列表 true_labels 为标记的真实标签列表
1 | from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Lowo's blog!
评论