《数据中异常值的处理方法_总》由会员分享,可在线阅读,更多相关《数据中异常值的处理方法_总(9页珍藏版)》请在金锄头文库上搜索。
1、-数据中异常值的检测与处理方法数据中异常值的检测与处理方法一、数据中的异常值一、数据中的异常值各种类型的异常值:数据输入错误:数据输入错误:数据收集, 记录或输入过程中出现的人为错误可能导致数据异常。例如:一个客户的年收入是$ 100,000。数据输入运算符偶然会在图中增加一个零。现在收入是 100 万美元,是现在的 10 倍。显然,与其他人口相比,这将是异常值。测量误差:测量误差:这是最常见的异常值来源。 这是在使用的测量仪器出现故障时引起的。例如:有 10 台称重机。其中 9 个是正确的,1 个是错误的。有问题的机器上的人测量的重量将比组中其他人的更高/更低。在错误的机器上测量的重量可能导
2、致异常值。实验错误:实验错误:异常值的另一个原因是实验错误。举例来说:在七名跑步者的100 米短跑中,一名跑步者错过了专注于 出发的信号,导致他迟到。因此,这导致跑步者的跑步时间比其他跑步者多。他的总运行时间可能是一个离群值。成心的异常值成心的异常值:这在涉及敏感数据的自我报告的度量中通常被发现。 例如:青少年通常会假报他们消耗的酒精量。 只有一小局部会报告实际价值。这里的实际值可能看起来像异常值,因为其余的青少年正在假报消费量。数据处理错误:数据处理错误:当我们进展数据挖掘时,我们从多个来源提取数据。*些操作或提取错误可能会导致数据集中的异常值。抽样错误:抽样错误:例如,我们必须测量运发动的
3、身高。错误地,我们在样本中包括一些篮球运发动。这个包含可能会导致数据集中的异常值。.z.-自然异常值:自然异常值: 当异常值不是人为的 由于错误 , 这是一个自然的异常值。例如:保险公司的前 50 名理财参谋的表现远远高于其他人。令人惊讶的是,这不是由于任何错误。因此,进展任何数据挖掘时,我们会分别处理这个细分的数据。在以上的异常值类型中,对于房地产数据,可能出现的异常值类型主要有:(1)数据输入错误,例如房产经纪人在发布房源信息时由于输入错误,而导致房价、面积等相关信息的异常;在数据的提取过程中也可能会出现异常值,比方在提取出售二手房单价时,遇到1 室 7800 元/m2,提取其中的数字结果
4、为17800,这样就造成了该条案例的单价远远异常于同一小区的其他房源价格,如果没有去掉这个异常值,将会导致整个小区的房屋单价均值偏高,与实际不符。(2)成心的异常值,可能会存在一些人,为了吸引别人来电询问房源,成心把价格压低,比方房屋单价为 1 元等等;(3)自然异常值。房价中也会有一些实际就是比普通住宅价格高很多的真实价格,这个就需要根据实际请况进展判断,或在有需求时单独分析。二、数据中异常值的检测二、数据中异常值的检测各种类型的异常值检测:1、四分位数展布法方法1:大于下四分位数加 1.5 倍四分位距或小于上四分位数减 1.5 倍。把数据按照从小到大排序,其中 25%为下四分位用 FL 表
5、示,75%处为上四分位用 FU 表示。计算展布为:dF FU FL,展布间距为上四分位数减去下四分位数。.z.-最小估计值下截断点:FL1.5dF最大估计值上截断点:FU1.5dF数据集中任意数用X表示,FL1.5dF X FU1.5dF,上面的参数 1.5 不是绝对的,而是根据经历,但是效果很好。计算的是中度异常,参数等于 3 时,计算的是极度异常。我们把异常值定义为小于下截断点,或者大于上截断点的数据称为异常值。优点:与方差和极差相比,更加不容易受极端值的影响,且处理大规模数据效果很好。缺点:小规模处理略显粗糙。而且只适合单个属相的检测。2、识别不遵守分布或回归方程的值方法: 双变量和多变
6、量离群值通常使用影响力或杠杆指数或距离来衡量,像Mahalanobis 的距离和 Cooks D 这样的流行指数经常被用来检测异常值。 在 SAS中,我们可以使用 PROC Univariate, PROC SGPLOT,为了识别异常值和有影响力的观测,我们还研究了 STUDENT、COOKD、RSTUDENT 等统计指标。马氏距离法1:假设两个变量*i 和*j 具有较高的正相关关系,*样本*k 在这两个变量上的取值为*ki,*kj,假设*ki 远远大于*i 的平均值,而*kj 却远小于*j的平均值, 则这个样品就很可能是异常的。检验这种异常品可以采用马氏平方距离法。主要思想是:把n 个 P
7、维样品看作 p 维空间中的 n 个点,则第i 个样品所对应的坐标为*i1,*i2,|,*ip。样品在空间中的相对位置可通过各样品与总体重心以各变量均值*1,*2,|,*p为坐标的点之间的距离来求得。.z.-设*(1),*(2),|,*(p)其中*i1,*i2,|,*ip为来自Np 中的 n 个样品,其中X (X1,X2,., Xp),Xk mean(x1k,x2k,., xnk)则样品*(i)到重心(X1,X2,., Xp)的马氏平方距离定义为其中可由样本协方差阵来估计x2分布表来查出、容易证明,当n 较大时,Di2近似服从x2p其临界值Dtrue可由当Di2 Dtrue时,将第 i 个样品判
8、为异常。稳健马氏距离:由于异常值的存在会显著影响中心值和协方差矩阵的估计, 使一般马氏距离不能正确反映各个观测的偏离程度。 对于这类数据, 需要通过稳健统计的方法,构建稳定的均值和协方差矩阵统计量。具体算法:设数据集为一个 n 行 p 列的矩阵*np,从中随机抽取 h 个样本数据,并计 算 这 个 样 本 数 据 的 样 本 均 值T1和 协 方 差 矩 阵S1。 然 后 通 过d1(i) (xiT1)S11(xiT1)计算这 n 个样本数据到中心 T1的马氏距离, 选出这 n个距离中最小的 h 个,再通过这个 h 个样本计算样本均值 T2和协方差矩阵 S2。根据 Rousseeuw,Van
9、Driessen(1999)可以证明 det(S2)A det(S1), 仅当 T1=T2时候等号成立。这样子不断迭代下去,当 det(Sm)A det(Sm-1)停顿迭代。这时再通过 Sm进展加权计算就能求出稳健的协方差矩阵估计量。(1)确定 h 的值。h 值在 0.5n 和 n 之间,一般来说 h 越小,它的抵抗异常值能力越强, 但是最小不能少于 50%, 因为少于 50%已经不能分辨哪些是正常值哪些.z.-是异常值,所以作为一种折中,h 默认是取 h=0.75*n,而当样本数量比较少时,h 一般取 0.9n。(2)如果 h=n,这时计算的是整个样本数据的均值向量和协方差矩阵,返回计算结果
10、并停顿。(3)从 n 个样本中随机抽取 p+1 个样本构造协方差矩阵,并计算其行列式,如果行列式为 0,再随机参加一个样本直到行列式不为 0,这时这个协方差矩阵为初始协方差矩阵 S0,并利用随机选择出来的样本计算初始样本均值 T0。(4)当 n 值较小(小于 600)时,直接从 T0、S0计算得到 T1、S1并开场迭代,迭代两次得到 S3。重复 500 次这个过程,得到 500 个 S3,从中选取最小的 10个继续迭代直到收敛,返回最小行列式值的 T 和 S,记为 Tmcd和 Smcd。(5)当 n 值较大时, 由于每次迭代都要把 n 个样本的距离计算一次, 非常耗时。所以把 n 个样本分成几
11、个局部,例如当 n 等于 900 时,可以把 n 分成 3 个子样本, 每个子样本包含 300 个样本。 每个子样本也是从各自 T0、 S0计算得到 T1、S1并开场迭代,迭代两次得到 S3,每个子样本重复 500/3=167 次,各自得到 167个 S3。每个子样本从中选取最小的 10 个 S3。然后把子样本合并重新合成一个整体样本,并也把子样本中的 10 个 S3合并,得到 30 个 S3。从这 30 个 S3迭代两次,保存最小的 10 个结果并继续迭代下去直到收敛,返回最小行列式值的 T 和 S,记为 Tmcd和 Smcd。(6)根据 Tmcd和 Smcd计算每个样本的稳定马氏距离 d(
12、i)。因为计算出来的距离值近似服从一个自由度为p 的卡方分布,假设置信度为97.5%时,当2d(i) P,0.975时,记 Wi=0 否则 Wi=1.然后根据 Wi再重新计算。这时 就是最.z.-后所求的稳定协方差矩阵。在此稳健协方差矩阵和稳健样本均值根底上,便能得出稳健的马氏距离。3、Cooks DCooks D:在你的数据资料中,如果*一条数据记录被排除在外,则由此造成的回归系数变化有多大.显然,如果这个值过大,则就说明这条数据对回归系数的计算产生了明显的影响,这条数据就是异常数据.4、覆盖法方法:将所有不在 5%到 95%范围的值当作异常值。5、标准偏差方法:偏离平均值三个或以上标准差的
13、数据点。6、因子方法:单变量或多变量异常值通常是用影响因子、水平因子、距离因子其中的一个指标来判断是否是异常值。回归系数的影响力。陈强,高级计量经济学及 Stata 应用,高等教育。7、简单规则库|-从正常的行为中学习规则, 测试数据假设是没有被任何规则包括则认为是异常利用规则学习算法学习规则,例如重复增量修枝RIPPER、决策树DecisionTrees8、聚类.z.-一种利用聚类检测离群点的方法是丢弃原理其他簇的小簇。 这种方法可以与任何聚类技术一起使用,但是需要最小簇大小和小簇与其他簇之间距离的阈值,通常,该过程可以简化为丢弃小于*个最小尺寸的所有簇。一种更系统的方法是,首先聚类所有对象
14、,然后评估对象属于簇的程度。对于基于原型的簇类, 可以用对象到它的簇中心的距离来度量对象属于簇的程度。更一般地, 对于基于目标函数的聚类技术,可以使用该目标函数来评估对象属于任意簇的程度。特殊情况下,如果删除一个对象导致该目标的显著改进,则我们可以将该对象分类为离群点。优点与缺点: 有些聚类技术(如 K 均值)的时间和空间复杂度是线性或接近线性的,因而基于这种算法的离群点检测技术可能是高度有效的。此外,簇的定义通常是离群点的补,因此可能同时发现簇和离群点。缺点方面,产生的离群点集和它们的得分可能非常依赖所用的簇的个数和数据总离群点的存在性。例如,基于原型的算法产生的簇可能因数据中存在离群点而扭
15、曲。 聚类算法产生的簇的质量对该算法产生的离群点的质量影响非常大。 每种聚类算法只适合特定的数据类型;因此,应当小心地选择聚类算法。9、贝叶斯依据已有的数据,然后建立模型,得到正常的模型的特征库,然后对新来的数据点进展判断。从而认定其是否与整体偏离,如果偏离,则这个就是异常值。10、降维:主成分分析法基于矩阵分解的异常点检测方法的关键思想是利用主成分分析去寻找那些违背了数据之间相关性的异常点。 为了发现这些异常点, 基于主成分分析 PCA的算法会把原始数据从原始的空间投影到主成分空间, 然后再把投影拉回到原始.z.-的空间。如果只使用第一主成分来进展投影和重构,对于大多数的数据而言,重构之后的
16、误差是小的;但是对于异常点而言,重构之后的误差依然相对大。这是因为第一主成分反映了正常值的方差,最后一个主成分反映了异常点的方差。 异常是那些同模型不能完美拟合的对象。三、数据中异常值的处理三、数据中异常值的处理1、删除输入错误,数据处理错误或异常值数目少,修剪两端删除异常值。2、数据转换或聚类转换数据取对数, 减少极端值的变化。 用决策树直接处理带有异常值的数据,决策树不受异常和缺失的影响或是对不同观测值分配权重。3、替换类似替换缺失值,我们可以替换异常值。我们可以使用均值,中位数,众数替换方法。但需分析它是人工造成的还是自然造成的,人工可以替换,也可以用统计模型预测异常值,然后替换它。4、别离对待如果异常值得数目比较多, 在统计模型中我们应该对它们分别处理,一个处理方法是异常值一组,正常值一组,然后分别建立模型,最后对结果合并。.z.-四、缺失值四、缺失值常用的处理方法:列说明智删除和配对明智删除、均值估计、中值、预测模型、KNN 插补。五、参考文献五、参考文献1、程鹏,数据挖掘中孤立点的探测方法J,*电脑,2006 年第 8 期。.z.