1

ELKI对于其中包含许多重复值的数据是否会失败?我有超过 200 万个观测值(1D)的文件,但它只包含几百个唯一值。其余的都是重复的。当我在 ELKI 中运行此文件时,对于LOFLoOP计算,它会返回NAN任何小于最高频率值出现次数的 k 的异常值。如果将重复项作为最近的邻居,我可以想象 LRD 计算一定会导致这个问题。但它不应该这样做吗?我们可以依赖 ELKI 针对此类案例产生的结果吗?

4

1 回答 1

1

这不是 ELKI 的问题,而是算法的问题。

大多数异常值检测算法使用 k 个最近邻。如果它们相同,则这些值可能有问题。在 LOF 中,重复点的邻居可以获得无穷大的异常值。同样,如果重复次数过多,由于除以 0,LoOP 的异常值可能达到 NaN。

但这不是 ELKI 的问题,而是这些方法的定义问题。任何坚持这些定义的实现都应该表现出这些效果。有一些方法可以避免/减少影响:

  • 向数据集添加抖动
  • 删除重复项(但永远不要考虑高度重复的值异常值!)
  • 增加邻域大小

如果数据有重复,很容易证明这样的结果确实出现在 LOF/LoOP 方程中。

这些算法的这种限制很可能是“固定的”,但我们希望 ELKI 中的实现接近原始发布,因此我们避免进行未发布的更改。但是,如果发布了“LOFdup”方法并将其贡献给 ELKI,我们显然会添加它。

请注意,LOF 和 LoOP 都不适用于一维数据。对于一维数据,我建议关注“传统”统计文献,例如核密度估计。一维数值数据是特殊的,因为它是有序的——这允许优化和更高级的统计数据,这些统计数据是不可行的或需要对多变量数据进行过多观察。LOF和类似的方法非常基本统计数据(如此基础,以至于许多统计学家会直接将它们视为“愚蠢”或“幼稚”)——其主要优点是它们很容易扩展到大型、多变量数据集。有时,朴素贝叶斯等朴素方法在实践中可以很好地工作;LOF 和 LoOP 也是如此:算法中有一些有问题的决定。但它们有效,并且可以扩展。就像朴素贝叶斯一样——朴素贝叶斯中的独立性假设是有问题的,但朴素贝叶斯分类通常效果很好,并且可以很好地扩展。

换句话说,这不是 ELKI 中的错误。该实现执行已发布的内容。

于 2015-09-14T08:22:20.147 回答