2015-09-03 58 views
1

是否ELKI对于其中有许多重复值的数据失败?我有超过200万观测值(1D)的文件,但它只包含几百个独特值。其余的都是重复的。当我在ELKI中运行此文件时,对于LOFLoOP计算,它将返回NAN作为任何k的异常值得分,小于频率最高的值的出现次数。我可以想象如果重复被认为是最近的邻居,LRD计算必须引起这个问题。但不应该这样做?我们可以依靠ELKI为这种情况生产的结果吗?ELKI的重复数据的LOF实现

回答

1

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

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

但这不是ELKI的问题,而是这些方法的定义。任何坚持这些定义的实现都应该表现出这些效果。有一些方法来避免/减少的影响:(!但从来不考虑高度dupilcated值异常值)

  • 抖动添加到数据集
  • 删除重复
  • 增加邻里大小

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

This 这些算法的限制最有可能是“固定的”,但我们希望ELKI中的实现接近原始发布,所以我们避免做未发布的更改。但是如果一个“LOFdup”方法被发布并且为ELKI做出了贡献,我们会明显地补充说明。

请注意,LOF和LoOP都不是,意思是与1维数据一起使用。 对于一维数据,我建议重点关注“传统”统计文献,而不是核密度估计。 1维数值数据是特殊的,因为它是订购的 - 这允许优化和更高级的统计数据,这些数据是不可行的或者需要对多元数据进行太多观察。 LOF和类似的方法是很基本的统计数据(很基本,很多统计学家会直接拒绝他们,认为他们是“愚蠢的”或“天真的”) - 关键的好处是他们可以很容易地扩展到大量的多元数据集。有时幼稚的方法,如朴素的贝叶斯在实践中可以很好地工作;对于LOF和LoOP同样适用:算法中有一些可疑的决定。但他们工作,并扩大规模。就像朴素贝叶斯一样 - 朴素贝叶斯的独立性假设值得怀疑,但朴素贝叶斯分类经常运作良好,并且尺度非常好。

换句话说,这不是ELKI中的错误。实现做什么发布

+0

感谢您的回复。 Knn算法不是基于距离而是根据实例寻找最近的邻居吗?例如,对于一个观测'o',如果'k = 3'且第一个最近的邻居n1有两个重复的'n1'和n1''',那么这两个副本也将是'o '而不是第二和第三最近的邻居。这就是为什么邻域的大小不一定总是等于k的原因(LOF:识别基于密度的局部离群值的第3页第4节)。 – Ira

+0

在这种情况下,除非所有数据点都重复,否则“重复点的邻居可以获得无限远的离群值”应该不会发生。不是吗? – Ira

+1

包含重复项,但通过包含在ELKI中打破关系。所以如果最近的邻居有5个重复项,那么这个重复项就是5个对象。有“k-不同的邻居”的概念,但目前在ELKI中不可用。 –