异常值检查方法
1)基于统计分析
异常检测问题就在统计学领域里得到广泛研究,通常用户用某个统计分布对数据点进行建模,再以假定的模型,根据点的分布来确定是否异常。如通过分析统计数据的散度情况,即数据变异指标来对数据的总体特征有更进一步的了解,对数据的分布情况有所了解,进而通过数据变异指标来发现数据中的异常点数据。常用的数据变异指标有极差、均差、标准差、变异系数等。
2)3σ原则
若数据岑仔正态分布,在3σ原则下,异常值为一组测定值中与平均值的偏差超过3倍标准差的值。如果数据服从正态分布,距离平均值3σ之外的值出现的概率为P(|x - μ| > 3σ) <= 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。
3)箱线图分析
箱线图提供了识别异常值的一个标准:如果一个值小于QL-1.5IQR或大于QU+1.5IQR的值,则被称为异常值。(* QL为下四分位数,表示全部观察值中有四分之一的数据取值比它小;* QU为上四分位数,表示全部观察值中有四分之一的数据取值比它大;* IQR为四分位数间距,是上四分位数QU与下四分位数QL的差值,包含了全部观察值的一半。)
箱型图判断异常值的方法以四分位数和四分位距为基础,四分位数具有鲁棒性:25%的数据可以变得任意远并且不会干扰四分位数,所以异常值不能对这个标准施加影响。因此箱型图识别异常值比较乐观,在识别异常值时有一定的优越性。
4)基于模型检测
首先建立一个数据模型,异常时那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常时相对远离预测值的对象。
优点:有坚实的统计学基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效。
缺点:对于多元数据,可用的选择少一些,并且对于高维数据,这些检测可能性很差。
5)基于距离
基于距离的方法时基于下面这个假设:即若一个数据对象和大多数点距离都很远,那些个对象就是异常。通过定义对象之间的临近性变量,根据距离判断异常对象是否远离其他对象,主要使用的距离度量方法有绝对距离(曼哈顿距离)、欧氏距离和马氏距离等方法。
优点:基于距离的方法比基于统计类方法要简单得多;因为为一个数据集合定义一个距离的度量要比确定数据集合的分布容易的多。
缺点:基于邻近度的方法需要O(m2)时间,大数据集不适用;该方法对参数的选择是敏感的;不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化。
6)基于密度
考察当前点周围密度,可以发现局部异常点,离群点的局部密度显著低于大部分近邻点,适用于非均匀的数据集。
优点:给出了对象是离群点的定量度量,并且即使数据具有不同的区域也能够很好的处理。
缺点:与基于距离的方法一样,这些方法必然具有O(m2)的时间复杂度。对于低维数据使用特定的数据结构可以达到O(mlogm);参数选择困难。虽然算法通过观察不同的K值,取得最大离群点得分来处理该问题,但是,仍然需要选择这些值的上下界。
7)基于聚类
对象是否被认为是异常点可能依赖于簇的个数(如k很大时的噪声簇)。该问题也没有简单的答案。一种策略是对于不同的簇个数重复该分析。另一种方法是找出大量小簇,其想法是:
- 较小的簇倾向于更加凝聚;
- 如果存在大量小簇时一个对象是异常点,则它多半是一个真正的异常点。 不利的一面是一组异常点可能形成小簇而逃避检测。
优点:
- 基于线性和接近线性复杂度(k均值)的聚类技术来发现离群点可能是高度有效的;
- 簇的定义通常是离群点的补,因此可能同时发现簇和离群点。
缺点:
- 产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据中离群点的存在性;
- 聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大。
8)基于邻近度的异常点检测
一个对象是异常的,如果它远离大部分点。这种方法比统计学方法更一般、更容易使用,因为确定数据集的有意义的邻近性度量比确定它的统计分布更容易。一个对象的异常点得分由到它的k-最近邻的距离给定。异常点得分对k的取值高度敏感。如果k太小(例如1),则少量的邻近异常异常点可能导致较异常低的异常点得分;如果K太大,则点数少于k的簇中所有的对象可能都成了异常异常点。为了使该方案对于k的选取更具有鲁棒性,可以使用k个最近邻的平均距离。
优点:
- 简单。
缺点:
- 基于邻近度的方法需要O(m2)时间,大数据集不适用;
- 该方法对参数的选择也是敏感的;
- 不能处理具有不同密度区域的数据集,因为它使用全局阈值,不能考虑这种密度的变化。