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