我正在使用ELKI数据挖掘软件进行离群值检测。它具有许多离群值检测技术,但都提供相同的结果(所有离群值都具有相同的离群值,唯一的区别在于点周围的圆的大小,如下图所示)。我使用ELKI网站上提供的鼠标头数据集。在数据集中,所有点都用其各自的簇名称标记,无论其是来自ear_left还是ear_right还是来自head或noise。如果我将噪音标签更改为ear_right,则它将离群点显示为ear_right。我将10个噪音标签中的5个更改为ear_right。
这是在修改后的数据集和ELKI中使用KNN和LDOF离群值检测技术的结果:
该软件是否有问题,或者我做错了什么?有没有人尝试将其用于离群值检测?有没有什么好的软件可以使用LOF,LDOF,KNN等不同算法执行离群值检测,或者在哪里可以找到这些技术的算法源代码?
这是一个非常简单的数据集。
毫不奇怪的是,所有方法都或多或少地有效。由于这是一个玩具数据集,而不是真实数据……在真实数据上,异常检测要困难得多。
请注意,ELKI中的实现会分配数字分数。他们不会做出是/否的异常决定;从分数中得出这是微不足道的。
如果需要二进制结果,则可以例如设置可视化缩放参数以仅可视化前k个结果。在其他情况下,您可能需要阅读实际的论文。例如,LOCI的作者建议将得分大于3的对象视为离群值。(不幸的是,大多数方法没有可用的特别简单的解释。)
不要在分类框中思考。离群值检测是一种探索性技术,而不是分类。
ELKI还可以使用多种度量来评估异常值方法的质量,例如ROC AUC,ROC曲线,Precision @ k,AveP,Maximum-F1。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句