对于异常值的检测
离群点,是一个数据对象,它显著不同于其他数据对象,与其他数据分布有较为显著的不同。有时也称非离群点为“正常数据”,离群点为“异常数据”。
离群点跟噪声数据不一样,噪声是被观测变量的随机误差或方差。一般而言,噪声在数据分析(包括离群点分析)中不是令人感兴趣的,需要在数据预处理中剔除的,减少对后续模型预估的影响,增加精度。
离群点检测是有意义的,因为怀疑产生它们的分布不同于产生其他数据的分布。因此,在离群点检测时,重要的是搞清楚是哪种外力产生的离群点。
常见的异常成因:
通常,在其余数据上做各种假设,并且证明检测到的离群点显著违反了这些假设。如统计学中的假设检验,基于小概率原理,对原假设进行判断。一般检测离群点,是人工进行筛选,剔除不可信的数据,例如对于房屋数据,面积上万,卧室数量过百等情况。而在面对大量的数据时,人工方法耗时耗力,因此,才有如下的方法进行离群点检测。
统计学方法是基于模型的方法,即为数据创建一个模型,并且根据对象拟合模型的情况来评估它们。大部分用于离群点检测的统计学方法都是构建一个概率分布模型,并考虑对象有多大可能符合该模型。
离群点的概率定义:离群点是一个对象,关于数据的概率分布模型,它具有低概率。这种情况的前提是必须知道数据集服从什么分布,如果估计错误就造成了重尾分布。
a. 参数法:
当数据服从正太分布的假设时在正态分布的假定下,u±3σ区域包含99.7%的数据,u±2σ包含95.4%的数据,u±1σ包含68.3%的数据。其区域外的数据视为离群点。
当数据是非正态分布时,可以使用切比雪夫不等式,它对任何分布形状的数据都适用。根据 切比雪夫不等式 ,至少有(1-1/k 2 )的数据落在±k个标准差之内。所以,有以下结论:
计算得到:通过绘制箱线图可以直观地找到离群点,或者通过计算四分位数极差(IQR)定义为Q3-Q1。比Q1小1.5倍的IQR或者比Q3大1.5倍的IQR的任何对象都视为离群点,因为Q1-1.5IQR和Q3+1.5IQR之间的区域包含了99.3%的对象。
涉及两个或多个属性或变量的数据称为多元数据。核心思想是把多元离群点检测任务转换成一元离群点检测问题。
- 卡方统计量的多元离群点检测 :正态分布的假定下,卡方统计量也可以用来捕获多元离群点,对象 ,卡方统计量是: , 是 在第i维上的值, 是所有对象在第i维上的均值,而n是维度。如果对象的卡方统计量很大,则该对象是离群点。
b. 非参数法:
构造直方图
为了构造一个好的直方图,用户必须指定直方图的类型和其他参数(箱数、等宽or等深)。最简单的方法是,如果该对象落入直方图的一个箱中,则该对象被看做正常的,否则被认为是离群点。也可以使用直方图赋予每个对象一个离群点得分,比如对象的离群点得分为该对象落入的箱的容积的倒数。但这个方法很难选择一个较好的直方图参数。
注意 :
传统的观点都认为孤立点是一个单独的点,然而很多的现实情况是异常事件具有一定的时间和空间的局部性,这种局部性会产生一个小的簇.这时候离群点(孤立点)实际上是一个小簇(图下图的C1和C3)。
一个对象是异常的,如果它远离大部分点。这种方法比统计学方法更一般、更容易使用,因为确定数据集的有意义的邻近性度量比确定它的统计分布更容易。不依赖统计检验,将基于邻近度的离群点看作是那些没有“足够多“邻居的对象。这里的邻居是用 邻近度(距离) 来定义的。最常用的距离是绝对距离(曼哈顿)和欧氏距离等等。
一个对象的离群点得分由到它的k-最近邻的距离给定。离群点得分对k的取值高度敏感。如果k太小,则少量的邻近离群点可能导致离群点较少;如果K太大,则点数少于k的簇中所有的对象可能都成了离群点,导致离群点过多。为了使该方案对于k的选取更具有鲁棒性,可以使用k个最近邻的平均距离。
从基于密度的观点来说,离群点是在低密度区域中的对象。一个对象的离群点得分是该对象周围密度的逆。基于密度的离群点检测与基于邻近度的离群点检测密切相关,因为密度通常用邻近度定义。
定义密度
一种常用的定义密度的方法是,定义密度为到k个最近邻的平均距离的倒数 。如果该距离小,则密度高,反之亦然。
另一种密度定义是使用DBSCAN聚类算法使用的密度定义,即一个对象周围的密度等于该对象指定距离d内对象的个数。 需要小心的选择d,如果d太小,则许多正常点可能具有低密度,从而离群点较多。如果d太大,则许多离群点可能具有与正常点类似的密度(和离群点得分)无法区分。 使用任何密度定义检测离群点具有与基于邻近度的离群点方案类似的特点和局限性。特殊地,当数据包含不同密度的区域时,它们不能正确的识别离群点。
定义相对密度
为了正确的识别这种数据集中的离群点,我们需要与对象邻域相关的密度概念,也就是定义相对密度。常见的有两种方法:
(1)使用基于SNN密度的聚类算法使用的方法;
(2)用点x的密度与它的最近邻y的平均密度之比作为相对密度。使用相对密度的离群点检测( 局部离群点要素LOF技术 ):
一种利用聚类检测离群点的方法是丢弃远离其他簇的小簇。这个方法可以和其他任何聚类技术一起使用,但是需要最小簇大小和小簇与其他簇之间距离的阈值。这种方案对簇个数的选择高度敏感。使用这个方案很难将离群点得分附加到对象上。
一种更系统的方法,首先聚类所有的点,对某个待测点评估它属于某一簇的程度。(基于原型的聚类可用离中心点的距离来评估,对具有目标函数(例如kmeans法时的簇的误差平方和)的聚类技术,该得分反映删除对象后目标函数的改进),如果删去此点能显著地改善此项目标函数,则可以将该点定位为孤立点。
基于聚类的离群点:一个对象是基于聚类的离群点,如果该对象不强属于任何簇。离群点对初始聚类的影响:如果通过聚类检测离群点,则由于离群点影响聚类,存在一个问题:结构是否有效。为了处理该问题,可以使用如下方法:
对象是否被认为是离群点可能依赖于簇的个数(如k很大时的噪声簇)。该问题也没有简单的答案。一种策略是对于不同的簇个数重复该分析。另一种方法是找出大量小簇,其想法是(1)较小的簇倾向于更加凝聚,(2)如果存在大量小簇时一个对象是离群点,则它多半是一个真正的离群点。不利的一面是一组离群点可能形成小簇而逃避检测。
根据已有训练集检测新样本是否异常
异常检测根据原始数据集的不同可分为两类:
novelty detection: 训练集中没有异常样本
outlier detection: 训练集中有异常样本
异常样本:
数量少,比较分散
novelty detection和outlier detection的区别:
Sklearn异常检测模型一览
5.1 奇异点检测(Novelty Detection)
奇异点检测,就是判断待测样本到底是不是在原来数据的概率分布内。概率学上认为,所有的数据都有它的隐藏的分布模式,这种分布模式可以由概率模型来具象化。
5.1 离群点检测(Outlier Detection)
不同与奇异点检测是,现在我们没有一个干净的训练集(训练集中也有噪声样本)。下面介绍的三种离群点检测算法其实也都可以用于奇异点检测。
如果我们认为,可达密度小的目标样本点就是异常点,这样未尝不可。但是,LOF算法更进一步。
LOF可以用来判断经纬度的异常。
使用python进行异常值(outlier)检测实战:KMeans + PCA + IsolationForest + SVM + EllipticEnvelope
文章引用: 数据挖掘:数据清洗——异常值处理
4种常见异常值检测算法实现
首先,介绍 孤立森林(Isolation Forest),一种基于决策树的无参数异常检测方法。其主要工作原理是随机选择特征和值对样本进行分割,将具有较少划分次数的样本视为异常值。示例中展示了使用 IsolationForest 实现的核心代码。其次,DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 是一种...
如何判断和检测异常值
要判断数据的异常程度,通常借助三倍标准差判别法和Tukey's Test。首先,三倍标准差法通过计算数据与平均值的偏离程度来识别异常,超出平均值正负一、二、三倍标准差范围分别对应普通、中度和严重异常。例如,某公司1月收入数据,若1月16日为50万,属于普通异常;60万则为中度异常,80万则为严重异常。...
在Python中寻找数据异常值的三种方法
一种简单且直接的异常值检测方法是使用孤立森林算法。这种方法基于决策树构建森林,通过评估数据点在森林中的孤立度来判断异常值。代码示例如下,我们预测每一行是否为异常值,1表示非异常值,-1表示异常值。对于我们的案例,孤立森林算法识别出了数据集中的最后两行作为异常值。接下来,我们可以尝试使用孤椭...
有哪些比较好的做异常值检测的方法?
首先,概率方法为我们提供了一种直观且基础的检测手段。通过计算数据点与整体分布的偏离程度,我们可以识别出那些显著偏离平均值或模型预测的异常点。这种方法简单易行,但可能对数据分布有较强的假设。矩阵分解,如PCA(主成分分析)和SVD(奇异值分解),则通过降维和重构数据,揭示隐藏的结构和模式,异常...
基于统计学的异常检测方法:识别数据中的异常值
在数据中添加异常点后,通常发现数据不再符合正态分布,异常值可能会破坏数据的正态性,导致分布偏斜和峰度变化。这可能影响后续统计检验结果,但观察直方图、正态概率图和其他图形有助于更全面理解数据分布。总结与参考 异常检测是关键任务,有助于识别数据中的异常情况,确保数据质量并提供及时警报和决策...
异常值判断处理
在统计判断中,有两种方法:标准差已知时使用奈尔检验法,标准差未知时则采用格拉布斯检验法或狄克逊检验法。以格拉布斯检验为例,首先计算样本平均值μ、标准差s,然后构造检验统计量Gn,与临界值进行比较,判断是否为异常值或高度异常值。在回弹法检测混凝土强度时,具体应用为计算fn、m和s,根据检出水平...
异常值检测!最佳统计方法实践(代码实现)!⛵
异常值检测在数据分析中至关重要,本文将介绍两种主要方法:可视化和统计,通过Python代码实现。首先,通过箱线图和直方图,我们可以直观地发现保险数据集中年龄、BMI和费用的异常值分布。年龄没有异常,BMI上限有异常,费用上限存在多个异常点。接着,统计方法如z分数和四分位距也被采用。z分数通过测量数据点...
一文读懂!异常检测全攻略!从统计方法到机器学习 ⛵
首先,我们接触了传统的统计手段,如通过四分位距和标准差来识别离群值。接着,我们步入前沿技术领域,了解了孤立森林、DBSCAN和LOF等机器学习模型,它们分别通过孤立点、密度聚类和局部密度偏差来识别异常点。异常值的检测不仅关注数据集中偏离常态的点,还可能源自自然偏差、欺诈行为或系统错误。在处理数据...
对于异常值的检测
如果我们认为,可达密度小的目标样本点就是异常点,这样未尝不可。但是,LOF算法更进一步。 LOF可以用来判断经纬度的异常。 使用python进行异常值(outlier)检测实战:KMeans + PCA + IsolationForest + SVM + EllipticEnvelope 文章引用: 数据挖掘:数据清洗——异常值处理 已赞过 已踩过< 你对这个回答的评价是? 评...
箱形图为什么能检测异常值,原理是什么?
首先,让我们明确异常值的定义。异常值,也被称为离群值(outlier),是指在数据集中,数值显著偏离正常范围的极端值。它们可能是录入错误,也可能是真实存在的异常情况,甚至可能是某种趋势的代表。处理异常值,我们需要分步骤进行:识别、验证和决策。识别异常值,箱形图提供了直观的方法。箱形图,又名四...
老询珍欣: 狄克逊检验法:用于一组测量值的一致性检验(可用于检出1个或多个异常值).格鲁布斯检验法:适用一组测量值的一致性检验(一次只能检出1个异常值).异常值 [yì cháng zhí]:是指一组测定值中与平均值的偏差超过两倍标准差的测定...
相城区19813359679: 异常值的判断处理 - ?
老询珍欣: 检验批中异常数据的判断处理 1、依据标准 《计数抽样检验程序》(GB2828)、《正态样本异常值的判断和处理》(GB4883). 2、异常值定义 异常值是指样本中的个别值,其数值明显偏离它(或他们)所属样本的其余观测值. 3、异常值...
相城区19813359679: 检测异常值的常用方法,除了超过几倍标准差,还有哪些 - ?
老询珍欣: 在回弹法检测砼强度中,按批抽样检测的测区数量往往很多,这就不可避免出现较多的检测异常值,怎样判断和处理这些异常值,对于提高检测结果的准确性意义重大.格拉布斯检验法是土木工程中常用的一种检验异常值的方法
相城区19813359679: 怎么用SAS进行异常值检测? - ?
老询珍欣: 所谓异常值,设置一个变量的值非常极端或者出现的频次非常的低. 1)数值型变量异常值检测 数值型的变量异常值检测可以通过PROC UNIVARIATE过程来完成 代码如下:PROC UNIVARIATE DATA=IREAD.DA_FIN_200909; VAR _NUMERIC_; RUN;然后查看每个变量的分位数表,分析哪些变量可能存在异常的情况. 2)字符型变量异常值检测 字符型的变量异常值检测可以通过PROC FREQ过程来完成 代码如下:PROC FREQ DATA=IREAD.DA_FIN_200909; TABLE 变量1 变量2.../MISSING; RUN;查看每个字符型变量的频数分布,发现异常的值.
相城区19813359679: 怎么对统计数据的异常值进行判断和处理 - ?
老询珍欣: 异常值也称离群值,具体地说,判断标准依据实际情况,根据业务知识及实际需要而定. 要是一般地说,可以用公式计算: upper adjacent value = 75th percentile + (75th percentile – 25th percentile) *
相城区19813359679: 统计学里异常值的概念统计学里有异常值检测,请问这个异常值是正常的观测值还是错误的观测值?案例:我在做一个预警的实验,数据库中有一组数据值,... - ?
老询珍欣:[答案] 异常值也称离群值,具体地说,判断标准依据实际情况,根据业务知识及实际需要而定.要是一般地说,可以用公式计算:upper adjacent value = 75th percentile + (75th percentile – 25th percentile) * 1.5lower adjacent...
相城区19813359679: 下列关于异常值检测的说法中正确的是() - 上学吧继续教育考试?
老询珍欣: Q值检验法 主要用于分辨异常的数据,不仅仅是最大和最小值,如果最大最小值是需舍去的,应该重新排列该数列,然后在符合Q值检验法的条件下,进一步检验