如何在同一数据集上比较两种无监督异常检测算法?

数据挖掘 无监督学习 异常检测 阶级失衡 评估
2021-09-17 21:08:14

我想解决未标记数据集上的异常检测问题。关于这个问题的唯一信息是异常人口低于 0.1%。需要注意的是,每个样本的特征向量的大小是40。有没有什么明确的方法可以比较无监督算法的性能?

1个回答

对于未标记的数据集,可以主观或客观地比较无监督异常检测器。

  1. 主观比较:基于我们的领域知识,通过使用一些可视化和统计,我们可以比较两个检测器,并主观地选择一个输出更好异常的检测器。

    1. 这是一项关于无监督异常检测器的广泛引用调查,该调查使用 AUC 比较了标记数据集(具有已知的、特定于域的异常值)上的算法,并得出结论,本地检测器(例如 LOF、COF、INFLO 和 LoOP)不是全局异常检测的良好候选者: 2016 A Comparative Evaluation of Unsupervised Anomaly Detection Algorithms for Multivariate Data
  2. 客观比较:理论上可能,实践中不可能。

客观比较的要求:

  1. 异常定义:x是一个异常,如果P(x)<t对于某个阈值t,

  2. 异常检测器要求:D是一个异常检测器,如果对于每个检测到x,P(x)<t,

  3. 比较异常:x1_ _x2如果P(x1)<P(x2)或等效地r(x1,x2)=P(x1)/P(x2)<1,

  4. 比较异常检测器:提案x1从探测器D1好于x2D2如果r(x1,x2)<1,

如您所见,为了对两个检测器进行鉴定和比较,我们需要了解底层P(x)或者至少r(x1,x2). 但是如果我们知道这些数量(作为 判断 J) 或者至少对它们进行了足够接近的估计,我们就有了更好的异常检测器J并且可以扔D1D2离开!我们插入任何观察x或一对观察x1x2进入J并检查哪个是异常或哪个更异常,完成!因此,除非我们有更好的异常检测器(法官),否则不可能客观地比较两个异常检测器。所以我们应该使用主观比较。