异常值检测方法分类
异常值检测是数据分析中的一个重要环节,目的是识别并处理数据集中的异常或者离群值。这些值可能会影响后续的数据分析和建模。以下是几种常见的异常值检测方法的分类:
1.基于统计的方法
基于统计的方法依赖于数据集服从某种分布(如正态分布、泊松分布及二项式分布等)或概率模型的假设。通过判断某数据点是否符合该分布/模型(即通过小概率事件的判别)来实现异常值检测。具体包括:
Zscore方法:Zscore为标准分数,测量数据点和平均值的距离,若A与平均值相差2个标准差,Zscore为2。当把Zscore=3作为阈值去剔除异常点时,便相当于3sigma。
Boxplot(箱线图)方法:基于四分位距(IQR)即上下四分位数之间的距离建立的。落在内栏和外栏之间的观测值被认为是可疑的异常值,落在外栏之外的观测值被认为是高度可疑的异常值。
Grubbs'
Test方法:是一种假设检验的方法,常被用来检验服从正态分布的单变量数据集中的单个异常值。若有异常值,则其必为数据集中的最大值或最小值。
2.基于聚类的方法
基于聚类的异常检测方法通常依赖于下列假设:正常数据实例属于数据中的一个簇,而异常数据实例不属于任何簇;正常数据实例靠近它们最近的簇质心,而异常数据离它们最近的簇质心很远;正常数据实例属于大而密集的簇,而异常数据实例要么属于小簇,要么属于稀疏簇。具体包括:
Kmeans聚类:通过将数据归分到不同的簇中,异常数据则是那些属于小簇或者不属于任何一簇或者远离簇中心的数据。
DBSCAN聚类:DBSCAN是一维或多维特征空间中的非参数,基于密度的离群值检测方法。在DBSCAN聚类技术中,所有数据点都被定义为核心点(Core
Points)、边界点(BorderPoints)或噪声点(NoisePoints)。核心点是在距离ℇ内至少具有最小包含点数(minPts)的数据点;边界点是核心点的距离ℇ内邻近点,但包含的点数小于最小包含点数(minPts)。
3.基于深度的方法
该方法将数据映射到k维空间的分层结构中,并假设异常值分布在外围,而正常数据点靠近分层结构的中心(深度越高)。具体包括:
Isolation
Forest方法:随机选择要分离的点“a”;选择在最小值和最大值之间的随机数据点“b”,并且与“a”不同;如果“b”的值低于“a”的值,则“b”的值变为新的下限;如果“b”的值大于“a”的值,则“b”的值变为新的上限。与孤立非异常值相比,它需要更少的分裂来孤立异常值,即异常值与非异常点相比具有更低的孤立数。
4.基于密度的方法
基于密度的方法通过计算每个数据点的局部可达密度来判断该数据点是否为离群点。具体包括:
Local
Outlier
Factor
(LOF)方法:LOF是基于密度的经典算法,通过给每个数据点都分配一个依赖于邻域密度的离群因子LOF,进而判断该数据点是否为离群点。它可以量化每个数据点的异常程度(outlierness)。
以上方法各有优缺点,适用于不同的数据集和应用场景。在实际应用中,可以根据具体情况选择合适的方法进行异常值检测。