无监督的数据异常检测算法(3)- INFLO
1. INFLO原论文
Ranking Outliers Using Symmetric Neighborhood Relationship
1.1 综述(Abstract)
挖掘数据集中的异常值是为了找到偏离数据集其余部分的异常对象。除了经典的异常值分析算法之外,最近的研究还集中在挖掘局部异常值,即密度分布与其邻域显著不同的异常值。迄今为止,对于目标对象处密度分布的估计一直基于其
1.2 介绍(Introduce)
基本上,离群值被定义为在某种程度上偏离数据集其余部分的异常对象。如网络入侵可能会导致在低流量时段内的网络事件数量出现显著峰值,但是当比较中还包括高网络流量时段时,那么低流量时段的峰值就会显得微不足道。鉴于此,局部异常值的检测就有了很明显的意义。(LOF的叙述不再介绍),对于LOF局部异常值检测中,如果出现一些更为复杂的情况,其异常值的判断并不能成立,如下图所示:
示例: 考虑上图中的情况,其中
情况1: 对象
情况2: 虽然
一般来说,位于两个集群之间边界附近的任何对象都可能被上述情况进行错误的异常值检测。
从上述的例子中可以看出,现有的离群值度量并不容易适用于数据集包含多个密度分布差异很大的簇类的复杂情况。造成上述问题的原因在于对物体邻域密度分布的估计不准确。在上图中,虽然
为了更好地估计邻域的密度分布,我们建议同时考虑最近邻(NN)和反向最近邻(RNN)。对象
图中表明对象
INFLO的贡献:
- 建议基于对称邻域关系挖掘异常值。所提出的方法在估计其邻域密度分布时考虑了对象的最近邻居和反向最近邻居的影响空间。
- 为数据集中的每个对象分配被影响异常值(INFLO)的程度。INFLOw越高,这个对象越有可能是异常值。INFLO越低,这个对象越有可能是集群的成员。具体来说,
表示对象位于集群的核心部分。 - 提出了几种有效的算法来挖掘基于INFLO的前
个异常值。为了减少大量KNN和RNN搜索产生的庞大计算,通过在搜索过程中动态修剪INFLO=1的对象,开发了一种双向搜索方法。此外,利用微集群技术压缩数据集以进行高效的对称查询,并使用两阶段修剪方法修剪掉那些永远不会出现在前 个异常值中的对象。 - 对合成数据集和真实数据进行了全面的性能评估和分析,其表明本文所述方法不仅在性能上高效且可扩展,而且在对有意义的异常值进行排名方面也很有效。
通过对称关系影响离群值的度量
介绍新的度量与其相关属性。对于一些符号做出说明。令
定义一:
- 至少对于
个对象 ,有 。 - 至多对于
个对象 ,有 。
对象
定义二:对象
对象
尽管
的 最近邻( )可能不唯一,但是 是唯一的。因此, 的密度也是唯一的。最近邻关系不是对称的。对于给定的 ,其最近邻居可能没有 是最近邻的邻居之一。因此引入反向最近邻的概念如下。
定义三:对象
反向最近邻RNN是一个逆关系,可以将其定义为
对于任何对象
定义四:
其中:
INFLO是