时间序列异常检测的评估指标

数据挖掘 机器学习 时间序列 数据挖掘 异常检测 评估
2022-03-10 12:01:58

我有一个 AI 或数据专家的问题。我在写论文

我的数据集是时间序列传感器数据,异常率在 5% 到 6% 之间

1. 对于时间序列异常检测评估,精度/召回/F1ROC-AUC哪个更好?

在实证研究这个问题时,我发现有些论文使用precision/recall/F1,有些论文使用ROC-AUC

考虑到正样本(异常)比负样本(正常点)相对少,哪一个更好?

我对这个问题感到困惑

2.如果我使用precision/recall/F1,我应该只检查正类的precision/recall/F1吗?

我认为因为正样本的数量很少,所以只检查正类的精度/召回率/F1是不合适的

因此,我应该检查正类和负类的精度/召回率/F1吗?

如果这是正确的,我可以在我的论文中使用宏平均报告精度/召回/F1吗?

(你可以看下图。我在sklearn库中使用了classification_report)

谢谢你的解释 !

在此处输入图像描述

2个回答

您好,欢迎来到社区!

  1. 不要混淆这些。它们是解释同一概念的不同方式。关键是,在此类人口非常不平衡的问题中,您需要使用考虑精细详细检查效果的评估指标,即 TP、FP、TN 和 FN。Precision/Recall 和 AUC/ROC 都使用它们。

但是它们之间的主要区别是什么?AUC/ROC 给你一个美妙的视觉表现(当然还有一个数字),Precision/Recall 给你更全面详细的数值评估。所以第一个比较适合比较几个模型,第二个更适合对每个模型进行深入检查(当然它们仍然反之亦然,但“不太好”)。甚至不要犹豫,将两者都包括在内。只是丰富了你论文的评估​​部分。

  1. 正类是您论文的重点,但是您还想跟踪琐碎类(正常点)的表现,所以我建议包括两者,即您发布的分类报告是报告结果的好方法

  2. 您当然应该报告宏观平均值!在不平衡的问题中,您实际上使用精度/召回或 auc/roc 来摆脱某些东西,而加权平均值正是计算那个东西!

那个“东西”正在影响大班规模的评估。

示例:在这里您可以看到精度对于正常点非常好,而对于异常点非常差。什么加权平均告诉你?它说 0.91 非常好。但是性能如何?检测异常是 0.1,这是您论文的重点!对?所以要小心......不平衡的问题应该通过宏观平均来评估。

F1需要找到一个阈值来决定哪些样本是正常的,哪些是异常的。这意味着 f1 分数在某种程度上取决于您找到此阈值的能力,而不仅仅是模型的异常分数。

您的加权f1 分数因正常数据的良好表现而被高度夸大。不考虑测试集中有多少正常示例。另一方面,你会看到更多的正常数据。大多数人使用加权并在文本中写它,因为它的性能更好,并且大多数人不知道它的含义或在他们的论文中以相同的方式进行,因为它看起来非常出色。这些方法中的大多数从未在现实世界中使用过。这只是一篇学术论文,营销对于赠款至关重要!因此,通常可以报告心理更好看的加权。