异常检测——基于相似度的方法

异常检测——基于相似度的方法

在数据分析和数据挖掘的过程中,我们经常需要知道个体间差异的大小,进而评价个体的相似性和类别。最常见的是数据分析中的相关分析,数据挖掘中的分类和聚类算法,如K最近邻(KNN)和K均值(K-Means)。

一、基于距离的度量
距离度量(Distance)用于衡量个体在空间上存在的距离,距离越远说明个体间的差异越大。
距离度量的方法主要有:
1、欧氏距离
最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中。
2、曼哈顿距离
我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和 。
3、切比雪夫距离
各对应坐标数值差的最大值。
4、闵可夫斯基距离
闵氏距离不是一种距离,而是一组距离的定义。
5、标准化欧氏距离
标准化欧氏距离是针对简单欧氏距离的缺点而作的一种改进方案。标准欧氏距离的思路:既然数据各维分量的分布不一样,那先将各个分量都“标准化”到均值、方差相等。
6、马氏距离
马氏距离的优缺点:量纲无关,排除变量之间的相关性的干扰。
7、巴氏距离
在统计中,巴氏距离测量两个离散或连续概率分布的相似性。它与衡量两个统计样品或种群之间的重叠量的巴氏系数密切相关。
8、汉明距离
两个等长字符串s1与s2之间的汉明距离定义为将其中一个变为另外一个所需要作的最小替换次数,即两个字符串对应位置的不同字符的个数。
基于距离的方法是一种常见的适用于各种数据域的异常检测算法,它基于最近邻距离来定义异常值。 此类方法不仅适用于多维数值数据,在其他许多领域,例如分类数据,文本数据,时间序列数据和序列数据等方面也有广泛的应用。
(一)基于单元的方法
基于单元格的技术中,数据空间被划分为单元格,单元格的宽度是阈值D和数据维数的函数。具体地说,每个维度被划分成宽度最多为 D/2√d单元格。在给定的单元以及相邻的单元中存在的数据点满足某些特性,这些特性可以让数据被更有效的处理。在这里插入图片描述

       以二维情况为例,此时网格间的距离为D/2√d ,需要记住的一点是,网格单元的数量基于数据空间的分区,并且与数据点的数量无关。这是决定该方法在低维数据上的效率的重要因素,在这种情况下,网格单元的数量可能不多。 另一方面,此方法不适用于更高维度的数据。对于给定的单元格,其 L1邻居被定义为通过最多1个单元间的边界可从该单元到达的单元格的集合。请注意,在一个角上接触的两个单元格也是 L1邻居。 L2邻居是通过跨越2个或3个边界而获得的那些单元格。 上图中显示了标记为X 的特定单元格及其 L1和L2 邻居集。 显然,内部单元具有8个 L1邻居和40个 L2邻居。 然后,可以立即观察到以下性质:
       单元格中两点之间的距离最多为 D/2。
       一个点与L1 邻接点之间的距离最大为D 。
       个点与它的Lr 邻居(其中r > 2)中的一个点之间的距离至少为D。

(二)基于索引的方法
对于一个给定数据集,基于索引的方法利用多维索引结构(如 R树、k-d 树)来搜索每个数据对象A 在半径D范围 内的相邻点。设M是一个异常值在其 D-邻域内允许含有对象的最多个数,若发现某个数据对象A的 D-邻域内出现M+1甚至更多个相邻点, 则判定对象A不是异常值。该算法时间复杂度在最坏情况下为,其中K是数据集维数,N是数据集包含对象的个数。该算法在数据集的维数增加时具有较好的扩展性,但是时间复杂度的估算仅考虑了搜索时间,而构造索引的任务本身就需要密集复杂的计算量。
三、基于密度的度量
基于密度的算法主要有局部离群因子(LocalOutlierFactor,LOF),以及LOCI、CLOF等基于LOF的改进算法。下面我们以LOF为例来进行详细的介绍和实践。
基于距离的检测适用于各个集群的密度较为均匀的情况。在下图中,离群点B容易被检出,而若要检测出较为接近集群的离群点A,则可能会将一些集群边缘的点当作离群点丢弃。而LOF等基于密度的算法则可以较好地适应密度不同的集群情况。
3.1、k-距离(k-distance§):
对于点p的第k距离定义如下,并且满足:
      a) 在集合中至少有不包括p在内的个点, 满足 ;
      b) 在集合中最多有不包括p在内的个点,满足 ;
  p的第k距离,也就是距离p第k远的点的距离,不包括p。
  在这里插入图片描述3.2、第k距离邻域 k-distance neighborhood of p:
  点p的第k距离邻域,就是p的第k距离即以内的所有点,包括第k距离。因此p的第k邻域点的个数 。
 
3.3、可达距离 reach-distance:
点o到点p的第k可达距离定义为:
也就是,点o到点p的第k可达距离,至少是o的第k距离,或者为o、p间的真实距离。
   这也意味着,离点o最近的k个点,o到它们的可达距离被认为相等,且都等于。
   如图,到p的第5可达距离为,到p的第5可达距离为。
   在这里插入图片描述
3.4、局部可达密度 local reachability density:
点p的局部可达密度表示为:
示点p的第k邻域内点到p的平均可达距离的倒数。
注意,是p的邻域点 到p的可达距离,不是p到的可达距离,一定要弄清楚关系。并且,如果有重复点,那么分母的可达距离之和有可能为0,则会导致lrd变为无限大,下面还会继续提到这一点。
这个值的含义可以这样理解,首先这代表一个密度,密度越高,我们认为越可能属于同一簇,密度越低,越可能是离群点。如果p和周围邻域点是同一簇,那么可达距离越可能为较小的,导致可达距离之和较小,密度值较高;如果p和周围邻居点较远,那么可达距离可能都会取较大值,导致密度较小,越可能是离群点。
3.5、局部离群因子 local outlier factor:
点p的局部离群因子表示为:
表示点p的邻域点的局部可达密度与点p的局部可达密度之比的平均数。
如果这个比值越接近1,说明p的其邻域点密度差不多,p可能和邻域同属一簇;如果这个比值越小于1,说明p的密度高于其邻域点密度,p为密集点;如果这个比值越大于1,说明p的密度小于其邻域点密度,p越可能是异常点。
lof的思想主要是通过比较每个点p和其邻域点的密度来判断该点是否为异常点,如果点p的密度越低,越可能被认定是异常点。至于密度,是通过点之间的距离来计算的,点之间距离越远,密度越低,距离越近,密度越高,完全符合我们的理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值