基于统计学的方法
参数方法
假定数据由一个以为参数的参数分布产生,然后利用已知数据求出分布里参数的估计(MLE),这样就得到了概率密度函数。判断新的数据是不是异常点时,将数据值代入,概率值低于某一个阈值时判定为异常值
非参数方法
主要介绍非参数方法
非参数方法并不假定统计先验模型,而是试图从输入数据确定模型。非参数方法通常假定参数的个数和性质都是灵活的,不预先确定
所以非参数方法对数据作较少的假定,因而在更多的情况下都可以使用
示例:
直方图是⼀种频繁使用的非参数统计模型,可以用来检测异常点。该过程包括如下两步:
步骤1: 构造直方图。使用输入数据(训练数据) 构造一个直方图。 该直方图可以是一元的, 或者多元的 (如果输入数据是多维的) 。
尽管非参数方法并不假定任何先验统计模型, 但是通常确实要求用户提供参数, 以便由数据学习。例如,用户必须指定直方图的类型(等宽的或等深的) 和其他参数(直方图中的箱数或每个箱的大小等)。与参数方法不同, 这些参数并不指定数据分布的类型。
步骤2: 检测异常点。 为了确定一个对象是否是异常点, 可以对照直方图检查它。 在最简单的方法中,如果该对象落入直方图的⼀个箱中, 则该对象被看作正常的, 否则被认为是异常点。
对于更复杂的方法,可以使用直方图赋予每个对象一个异常点得分。例如令对象的异常点得分为该对象落入的箱的容积的倒数。
使用直方图作为异常点检测的非参数模型的⼀个缺点是, 很难选择⼀个合适的箱尺寸。 一方面, 如果箱尺寸太小, 则许多正常对象都会落⼊空的或稀疏的箱中,因而被误识别为异常点。 另一方面,如果箱尺寸太大,则异常点对象可能渗入某些频繁的箱中, 因而“假扮”成正常的。
HBOS算法
计算速度较快,对大数据集友好
基本假设:数据集的每个维度相互独立。然后对每个维度进行区间(bin)划分,区间的密度越高,异常评分越低。
流程:
1.为每个数据维度做出数据直方图。对分类数据统计每个值的频数并计算相对频率。对数值数据根据分布的不同采用以下两种方法:
静态宽度直方图:标准直方图构建方法
动态宽度直方图:首先对所有值进行排序,然后固定数量的个连续值装进一个箱里,其中是总实例数,是箱个数;直方图的面积表示实例数。因为箱的宽度是由箱中第一个值和最后一个值决定的,即所有箱的面积都一样,因此每一个箱的高度都是可计算的。这意味着跨度大的箱高度低,即密度小,只有一种情况例外,超过个数相等,此时允许在同一个箱里超过个值
2.对每个维度都计算了一个独立的直方图,其中每个箱子的高度表示密度的估计。然后为了使最大高度为1(确保了每个特征与异常值得分的权重相等),对直方图进行归一化处理。最后每一个实例的HBOS值由下式计算: