异常检测task4基于邻近度的方法

本文详细介绍了异常检测中的基于邻近度的方法,包括基于距离的度量和基于密度的度量。在基于距离的方法中,异常点的 k 近邻距离通常远大于正常点,常用的方法有基于单元格和基于索引的技术。基于密度的度量如局部可达密度(Local Reachability Density, LRD)和局部异常因子(Local Outlier Factor, LOF)则用于处理密度不同的数据集群,有效地检测异常点。" 111436372,10294610,Python实现STV投票系统:计算50人3候选人投票结果,"['Python编程', '选举算法', '数据处理']
摘要由CSDN通过智能技术生成

学习目标:

主要内容包括:

  • 基于距离的度量
  • 基于密度的度量

学习内容:

1、概述

“异常”通常是一个主观的判断,什么样的数据被认为是“异常”的,需要结合业务背景和环境来具体分析确定。实际上,数据通常嵌入在大量的噪声中,而我们所说的“异常值”通常指具有特定业务意义的那一类特殊的异常值。噪声可以视作特性较弱的异常值,没有被分析的价值。噪声和异常之间、正常数据和噪声之间的边界都是模糊的。异常值通常具有更高的离群程度分数值,同时也更具有可解释性
  在普通的数据处理中,我们常常需要保留正常数据,而对噪声和异常值的特性则基本忽略。但在异常检测中,我们弱化了“噪声”和“正常数据”之间的区别,专注于那些具有有价值特性的异常值。在基于相似度的方法中,主要思想是异常点的表示与正常点不同

2、基于距离的度量

基于距离的方法是一种常见的适用于各种数据域的异常检测算法,它基于最近邻距离来定义异常值。 此类方法不仅适用于多维数值数据,在其他许多领域,例如分类数据,文本数据,时间序列数据和序列数据等方面也有广泛的应用。 基于距离的异常检测有这样一个前提假设即异常点的 k k k 近邻距离要远大于正常点。解决问题的最简单方法是使用嵌套循环。 第一层循环遍历每个数据,第二层循环进行异常判断,需要计算当前点与其他点的距离,一旦已识别出多于 k k k 个数据点与当前点的距离在 D D D 之内,则将该点自动标记为非异常值。 这样计算的时间复杂度为 O ( N 2 ) O(N^{2}) O(N2),当数据量比较大时,这样计算是及不划算的。 因此,需要修剪方法以加快距离计算。

2.1 基于单元的方法

在基于单元格的技术中,数据空间被划分为单元格,单元格的宽度是阈值D和数据维数的函数。具体地说,每个维度被划分成宽度最多为 D 2 ⋅ d \frac{D}{ {2 \cdot \sqrt d }} 2d D 单元格。在给定的单元以及相邻的单元中存在的数据点满足某些特性,这些特性可以让数据被更有效的处理。
  以二维情况为例,此时网格间的距离为 D 2 ⋅ d \frac{D}{ {2 \cdot \sqrt d }} 2d D ,需要记住的一点是,网格单元的数量基于数据空间的分区,并且与数据点的数量无关。这是决定该方法在低维数据上的效率的重要因素,在这种情况下,网格单元的数量可能不多。 另一方面,此方法不适用于更高维度的数据。对于给定的单元格,其 L 1 L_{1} L1 邻居被定义为通过最多1个单元间的边界可从该单元到达的单元格的集合。请注意,在一个角上接触的两个单元格也是 L 1 L_{1} L1 邻居。 L 2 L_{2} L2 邻居是通过跨越2个或3个边界而获得的那些单元格。 上图中显示了标记为 X X X的特定单元格及其 L 1 L_{1} L1 L 2 L_{2} L2 邻居集。 显然,内部单元具有8个 L 1 L_{1} L1 邻居和40个 L 2 L_{2} L2 邻居。 然后,可以立即观察到以下性质:

  • 单元格中两点之间的距离最多为 D / 2 D/2 D/2
  • 一个点与 L 1 L_{1} L1 邻接点之间的距离最大为 D D D
  • 一个点与它的 L r Lr Lr 邻居(其中 r r r > 2)中的一个点之间的距离至少为 D D D


  唯一无法直接得出结论的是 L 2 L_{2} L2 中的单元格。 这表示特定单元中数据点的不确定性区域。 对于这些情况,需要明确执行距离计算。 同时,可以定义许多规则,以便立即将部分数据点确定为异常值或非异常值。 规则如下:

  • 如果一个单元格中包含超过 k k k 个数据点及其 L 1 L_{1} L1 邻居,那么这些数据点都不是异常值。
  • 如果单元 A A A 及其相邻 L 1 L_{1} L1 L 2 L_{2} L2 中包含少于 k k k 个数据点,则单元A中的所有点都是异常值。

此过程的第一步是将部分数据点直接标记为非异常值(如果由于第一个规则而导致它们的单元格包含 k k k 个点以上)。 此外,此类单元格的所有相邻单元格仅包含非异常值。 为了充分利用第一条规则的修剪能力,确定每个单元格及其 L 1 L_{1} L1 邻居中点的总和。 如果总数大于 k k k ,则所有这些点也都标记为非离群值。

接下来,利用第二条规则的修剪能力。 对于包含至少一个数据点的每个单元格 A A A,计算其中的点数及其 L 1 L_{1} L1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值