1、概述
异常”通常是⼀个主观的判断,什么样的数据被认为是“异常”的,需要结合业务背景和环境来具体分析确定。实际上,数据通常嵌⼊在⼤量的噪声中,而我们所说的“异常值”通常指具有特定业务意义的那⼀类特殊的异常值。噪声可以视作特性较弱的异常值,没有被分析的价值。噪声和异常之间、正常数据和噪声之间的边界都是模糊的。异常值通常具有更⾼的离群程度分数值,同时也更具有可解释性。在普通的数据处理中,我们常常需要保留正常数据,而对噪声和异常值的特性则基本忽略。但在异常检测中,我们弱化了“噪声”和“正常数据”之间的区别,专注于那些具有有价值特性的异常值。在基于相似度的⽅法中,主要思想是异常点的表⽰与正常点不同。
2、基于距离的度量
基于距离的⽅法是⼀种常⻅的适⽤于各种数据域的异常检测算法,它基于最近邻距离来定义异常值。 此类⽅法不仅适⽤于多维数值数据,在其他许多领域,例如分类数据,⽂本数据,时间序列数据和序列数据等⽅⾯也有⼴泛的应⽤。基于距离的异常检测有这样⼀个前提假设,即异常点的 近邻距离要远⼤于正常点。解决问题的最简单⽅法是使⽤嵌套循环。 第⼀层循环遍历每个数据,第⼆层循环进⾏异常判断,需要计算当前点与其他点的距离,⼀旦已识别出多于 个数据点与当前点的距离在 之内,则将该点⾃动标记为⾮异常值。这样计算的时间复杂度为 ,,当数据量⽐较⼤时,这样计算是及不划算的。 因此,需要修剪⽅法以加快距离计算。
2.1 基于单元的⽅法
在基于单元格的技术中,数据空间被划分为单元格,单元格的宽度是阈值D和数据维数的函数。具体地说,每个维度被划分成宽度最多为 单元格。在给定的单元以及相邻的单元中存在的数据点满⾜某些特性,这些特性可以让数据被更有效的处理。