基于聚类的离群点检测

合集下载

离群点的判定

离群点的判定

离群点的判定摘要本文首先对离群点进行了定义,离群点(outlier)是指数值中,远离数值的一般水平的极端大值和极端小值。

因此,也称之为歧异值,有时也称其为野值。

深入了解了形成离群点的原因,并建立数学模型来找出一维、n维数据中的离群点,主要利用聚类的离群挖掘法。

针对问题一,考虑到数据的杂乱性,先对数据进行排序,由于在实际生活中我们需要处理的数据量往往比较多,离群点的个数也不确定,就考虑对数据进行分类处理,利用离群值跳跃度比较大的特点,采用斜率比较的方法进行分类,在分类的过程中我们就会很容易的发现离群点。

最后再对完成分类的数据进行分析。

完成分类的数据往往差距更小,可以近似的认为数据服从正态分布,利用正态分布的性质可以找出每类数据中的离群点,这样就找出了数据中所有的离群点。

针对问题二,我们主要采用具体的数据绘制具体的图形来分析存在的离群点,并说明离群点带来的影响。

针对问题三,我们主要利用基于聚类的离群挖掘方法,先利用一趟算法对数据集进行聚类;然后再计算每个簇的离群因子,并按离群因子对簇进行排序,最终确定离群簇,也即确定离群对象。

确定算法以后再利用具体的数据进行检测,看该模型是否可行。

关键词:数据的分类处理聚类的离群挖掘方法(CBOD)一、问题重述A题:离群点的判定离群点(outlier)是指数值中,远离数值的一般水平的极端大值和极端小值。

因此,也称之为歧异值,有时也称其为野值。

形成离群点的主要原因有:首先可能是采样中的误差,如记录的偏误,工作人员出现笔误,计算错误等,都有可能产生极端大值或者极端小值。

其次可能是被研究现象本身由于受各种偶然非正常的因素影响而引起的。

例如:在人口死亡序列中,由于某年发生了地震,使该年度死亡人数剧增,形成离群点;在股票价格序列中,由于受某项政策出台或某种谣传的刺激,都会出现极增,极减现象,变现为离群点。

不论是何种原因引起的离群点对以后的分析都会造成一定的影响。

从造成分析的困难来看,统计分析人员说不希望序列中出现离群点,离群点会直接影响模型的拟合精度,甚至会得到一些虚伪的信息。

离群点检测方法在异常数据分析中的应用

离群点检测方法在异常数据分析中的应用

离群点检测方法在异常数据分析中的应用数据分析在现代社会中变得越来越重要。

在大数据时代,我们每天都会产生大量的数据,包括个人信息、交易记录等等。

一方面,这些数据可以帮助我们更好地了解自己和周围的世界,另一方面,这些数据也可能包含一些异常情况或者错误信息。

为了准确分析数据,识别并处理异常数据变得至关重要。

离群点检测是一种常用的方法,用于识别数据集中的异常值。

简单来说,离群点就是与其他数据点明显不同的数据。

它们可能是由于错误数据记录、设备故障或者人为操作等原因产生的。

离群点可能对分析结果产生负面影响,所以我们需要找到并进行处理。

在异常数据分析中,有多种离群点检测方法可以选择。

其中,一种常见的方法是基于统计的方法。

这种方法通过计算数据点与平均值之间的距离,判断数据点是否属于异常值。

具体来说,可以使用均值与标准差的方法,在一定的置信水平下,将距离均值较远的数据点判定为离群点。

这种方法简单直观,易于理解和实施,适用于具有正态分布的数据集。

然而,对于非正态分布的数据集来说,基于统计的方法可能不够准确。

因此,我们可以使用基于距离的方法,如K近邻或LOF(局部离群因子)。

这些方法通过计算数据点与附近数据点之间的距离,来判断数据点是否为离群点。

如果一个数据点的邻居数据点与其距离较远,并且多个邻居数据点之间也存在较大距离,则该数据点可能为离群点。

这种方法对于数据分布较为复杂的情况下效果更好。

除了基于统计和距离的方法,还有一种常用的方法是基于聚类的方法。

简单来说,聚类是将数据集中的数据点划分为不同的组或簇,每个簇代表一个具有相似特征的数据点。

在聚类分析中,我们可以使用密度聚类方法,如DBSCAN(基于密度的空间聚类应用)来识别离群点。

在DBSCAN中,一个簇被定义为在给定半径和最小邻居数的条件下,由密度相连的数据点组成。

如果一个数据点不属于任何簇,或者只是与其他数据点之间的距离较远,那么它可能是一个离群点。

除了以上提到的方法,还有很多其他的离群点检测方法可以选择。

第9章 离群点检测

第9章 离群点检测

图9-5 基于聚类的离群点检测二维数据集
9.2离群点检测
基与聚类的离群点检测挖掘方法如下:
26
9.2离群点检测
基与聚类的离群点检测挖掘方法如下: 表9-1 离群因子表 X 1 1 1 2 2 2 6 2 3 5 5 Y 2 3 1 1 2 3 8 4 2 7 2 OF1 2.2 2.3 2.9 2.6 1.7 1.9 5.9 2.5 2.2 4.8 3.4
9.2离群点检测
21
‒ 结论 • LOF算法计算的离群度不在一个通常便于理解的范围[0,1],而是一 个大于1的数,并且没有固定的范围。而且数据集通常数量比较大, 内部结构复杂,LOF极有可能因为取到的近邻点属于不同数据密度 的聚类簇,使得计算数据点的近邻平均数据密度产生偏差,而得出 与实际差别较大甚至相反的结果。 ‒ 优点 • 通过基于密度的局部离群点检测就能在样本空间数据分布不均匀的 情况下也可以准确发现离群点。
1 2 2 1
18
图9.2 基于密度的局部离群点检测的必要性
9.2离群点检测
19
图9.2中,p1相当于C2的密度来说是一个局部离群点,这就形成了基于密度 的局部离群点检测的基础。此时,评估的是一个对象是离群点的程度,这种“离 群”程度就是作为对象的局部离群点因子(LOF),然后计算 。
reach _ distk ( x, xi ) max{distk ( xi ), dist ( x, xi )}
工作假设H为,假设n个对象的整个数据集来自一个初始的分布模型F,即: H: oi∈F,其中i=1,2,…,n 不和谐检验就是检查对象oi关于分布F是否显著地大(或小)。
9.2离群点检测 基于正态分布的一元离群点检测 • 正态分布曲线特点:N(μ,σ2) • 变量值落在(μ-σ,μ+σ)区间的概率是68.27% • 变量值落在(μ-2σ,μ+2σ)区间的概率是95.44% • 变量值落在(μ-3σ,μ+3σ)区间的概率是99.73%

基于离群点检测的K-means算法

基于离群点检测的K-means算法

基于离群点检测的K-means算法冷泳林;张清辰;赵亮;鲁富宇【摘要】K-means算法以其简单、快速的特点在现实生活中得到广泛应用。

然而传统K-means算法容易受到噪声的影响,导致聚类结果不稳定,聚类精度不高。

针对这个问题,提出一种基于离群点检测的K-means算法,首先检测出数据集中的离群点,在选择初始种子的时候,避免选择离群点作为初始种子。

然后在对非离群点进行聚类完成后,根据离群点到各个聚类的距离,将离群点划分到相应的聚类中。

算法有效降低离群点对K-means算法的影响,提高聚类结果的准确率。

实验表明,在聚类类别数给定的前提下,在标准数据集UCI上该算法有效降低离群点对K-means算法的影响,提高了聚类的精确率和稳定性。

%K-means algorithm is widely used in real life for its simple and rapid characteristics .However , traditional K-means algorithm is affected by outliers , leading to the instability of the clustering results and low accuracy of the clustering .For this problem , the paper proposes a novel K -means algorithm based on outliers detection .The presented algorithm firstly detects outliers from the given dataset , which can avoid selecting outli-ers as the initial seed .After clustering all the objects which are not outliers , the algorithm allocates every outlier to the corresponding cluster according to distance between the outlier and different clusters .The presented algo-rithm reduces the impact of outliers on traditional K -means algorithm and improves the clustering accuracy .For the given number of categories of the clusters and in the standard UCI data sets ,the experimental results indicate that thealgorithm is effective , reduces the influence of outlier on the K -means algorithm , improving the accura-cy and stability of the cluster .【期刊名称】《渤海大学学报(自然科学版)》【年(卷),期】2014(000)001【总页数】6页(P34-38,48)【关键词】聚类;K-means算法;离群点;UCI数据集【作者】冷泳林;张清辰;赵亮;鲁富宇【作者单位】渤海大学高职学院,辽宁锦州 121001; 大连理工大学软件学院,辽宁大连 116621;大连理工大学软件学院,辽宁大连 116621;大连理工大学软件学院,辽宁大连 116621;渤海大学高职学院,辽宁锦州 121001【正文语种】中文【中图分类】TP3110 引言聚类是将物理或抽象对象的集合分成由类似的对象组成多个类的过程,即“物以类聚,人以群分”.聚类是数据挖掘中的一类重要技术,是分析数据并从中发现有用信息的一种有效手段.它将数据对象分组成为多个类或簇,使得同一簇中的对象之间具有较高的相似度,而不同簇中的对象差别很大〔1〕.聚类已经广泛应用于模式识别、空间数据分析、经济学等领域.聚类分析既可以作为单独的工具发现数据集中隐含的相关知识,又可以作为其他数据挖掘分析方法的预处理过程,其已经成为数据挖掘领域的一个重要的研究方向.目前常用的聚类算法包括划分法、层次法、基于密度的方法、基于网格的方法和基于模型的方法等.其中,基于划分方法思想的K-means算法以其简单、快速并有效处理大规模数据等诸多特点,成为现实应用最为广泛的聚类算法.K-means算法〔2,3〕适合聚类大型数据集,特别是当样本分布呈现类内团聚状时,可以达到很好的聚类结果.但是,在有噪声数据影响时,K-means聚类算法结果易受初始聚类中心影响,导致聚类结果不稳定.K-means算法过度依赖初始条件的缺点影响了该算法的聚类效果并制约了其应用范围.当前许多学者致力于改进K-means算法的聚类中心选取方法,如基于均值-标准差选取方法〔4〕,基于近邻密度选取方法〔5〕, 基于密度参数的选取方法〔6〕等,然而这些算法没有充分考虑离群点对聚类的影响,导致最后聚类精度提高不明显.针对这个问题,本文提出一种基于离群点检测的K-means算法,算法将离群点检测引入传统K-means算法,首先检测出数据集中的离群点,在选择初始种子的时候,避免选择离群点作为初始种子.在对非离群点进行聚类完成后,根据离群点到各个聚类的距离,将离群点划分到相应的聚类中.算法有效降低离群点对K-means算法的影响,提高聚类结果的准确率.实验表明,在聚类类别数给定的前提下,通过标准UCI数据库进行实验比较,在保留噪声数据的同时,该算法有效提高聚类精度.1 相关理论和技术1.1 基于距离的离群点检测离群点是指明显偏离数据集中其他数据对象的数据点,人们怀疑这些点是由不同机制产生的〔7〕.离群点检测是数据挖掘领域中的一项重要挖掘技术.它可以发现数据集中小部分偏离了大多数数据行为或数据模型的异常数据.目前常用的离群点检测方法包括基于统计分布、基于距离、基于密度和基于偏差等方法〔8〕.其中,基于距离的离群点检测方法无需了解数据集的分布模型,适用于任何可以计算对象间距离的数据集,而且计算简单,因此本文采用该算法检测离群点.如果对象o在数据集S〔9〕中有大于p部分的对象与它的距离都大于d,那么就将对象o称为数据集S上的DB(p,d)离群点.基于距离的离群点的定义适用于任意维度的数据集,其中参数p表明与离群点的距离大于d的对象所占数据集的最小比例〔10〕.基于距离的离群点检测方法可以简便的定制对象间的距离函数,欧氏距离计算函数就是其中的一种.欧氏距离的定义如下:其中m为数据对象的维(属性)数,xij表示第i个对象的第j属性的值.基于距离的离群点检测算法主要步骤如下:1.随机选取一个数据对象.2.计算其他数据对象与选取的数据对象间的欧氏距离,如果与之距离大于d的数据对象的比例大于p,则判定该数据对象为离群点.3.选取下一个不重复数据对象.4.重复2,直到所有数据对象都被选到.1.2 传统K-means算法传统K-means算法的基本思想是〔11〕:随机地选择k个对象,每个对象初始代表了一个聚类中心;对剩余的每个对象根据其与各个聚类中心的距离,将它赋给最近的聚类;然后重新计算每个聚类的平均值,作为新的聚类中心.不断重复这个过程,直到准则函数收敛.收敛函数E定义为:其中:E是数据集所有对象与它所在的聚类中心的平方误差的总和,E越大说明对象与聚类中心的距离越大,聚类内的相似度越低,反之E越小说明聚类内的相似性越高. 为聚类内的一个数据对象;是聚类Ci的聚类中心,k是聚类个数,Ci是第i个聚类.K-means算法步骤如下:1.随机选择k个数据对象,每个对象作为初始聚类中心.2.计算每个数据对象与聚类中心的距离,根据距离将对象划分到距离最近的聚类.3.重复计算每个聚类中对象的平均值,更新聚类中心.4.重复2和3,直到准则函数E收敛.2 基于离群点检测的K-means算法基于离群点检测的K-means算法的基本思想是:首先利用基于距离的离群点检测方法检测数据集的离群点,然后在非离群点中随机选择k个数据点作为聚类的初始种子,利用传统K-means算法对非离群点进行聚类,最后将离群点划分到相应到聚类中.算法的思想如图1所示.图1 基于离群点检测的K-means算法算法具体步骤如下:1.随机选取一个数据对象.2.计算其他数据对象与选取的数据对象间的欧氏距离,如果与之距离大于d的数据对象的比例大于p,则判定该数据对象为离群点.3.选取下一个不重复数据对象.重复2,直到将所有离群点检测出为止.4.在非离群点中随机选取k个数据对象作为初始聚类种子.5.计算每个非离群点数据对象与聚类中心的距离,根据距离将对象划分到距离最近的聚类.6.重复计算每个聚类中对象的平均值,更新聚类中心.7.重复5和6,直到准则函数E收敛.8.计算每个离群点数据对象与聚类中心的距离,根据距离将其划分到最近的聚类. 算法描述如下:输入:n个数据对象集S 和聚类数k;输出:k个聚类中心Zj及k个聚类数据对象集合Cj;Beginfor r=1 to n //取数据集S中的各个数据对象begincount=0;for any q!=r //数据集中除了当前对象的其他对象beginend//离群点集A={a1,a2,...,ai};M=S-A; //在S中去除数据集A中的数据对象,生成数据集M;k_means( M , k ); //执行传统的K_means算法;for r=1 to i dobeginfor q=1 to jEnd.3 结果与分析本文将传统的K-means算法和基于离群点检测的K-means算法进行实验对比.为了测试本文算法的有效性,实验选择专用于测试聚类算法性能的UCI数据库中的Iris数据集,Diabetes数据集和Wine数据集作为实验数据集.分别用传统聚类算法与本文提出的算法对3组数据集进行测试.本文实验环境为:CPU为E4500(2.20 GHz)、内存为1.99 GB、操作系统为Windows XP,编程语言为Java.实验结果一:随机选择一批数据分别利用传统K-means聚类算法与本文改进的K-means算法对其进行聚类,结果示意图如图2所示.图2 聚类结果示意图由图2可知,传统K-means算法没有充分考虑离群点的影响,导致最后聚类结果不精确.本文在选择初始聚类中心时,避免选择离群点作为初始聚类中心,首先对非离群点进行聚类,最后根据离群点到与各个聚类的距离将其分配到相应的聚类中.本文有效避免离群点对聚类结果的影响,聚类精度高于传统K-means算法.实验结果二:利用传统K-means算法与本文改进的K-means算法分别对3组数据进行6次实验,对实验结果进行统计,平均准确率如表1所示.表1 传统K-means算法与本文算法聚类平均精度比较IrisDiabetesWine传统k-means算法0.79530.61880.9563本文算法0.83090.64840.96716次实验准确率统计曲线如图3所示.Iris聚类结果曲线 Diabetes聚类结果曲线Wine聚类结果曲线图3 实验结果统计曲线从表1与图3可以看出,传统K-means算法的最高准确率与本文算法的平均准确率接近,但平均准确率明显低于本文改进的K-means算法.另外,传统K-means算法容易受到噪声影响,导致聚类结果不稳定,当不选择离群点作为初始种子时,聚类结果较好,否则聚类效果很差.本文避免选择离群点作为初始种子,因此聚类效果稳定,聚类精度高于传统K-means聚类算法.4 结论聚类分析是数据挖掘领域中常用的数据分析方法,目前聚类分析的主流方法有很多,其中基于划分的K- means算法以其简单、快速并有效处理大规模数据等诸多优点,成为最经典并应用最广泛的聚类方法之一.然而传统K-means算法容易受到离群点的影响,导致聚类结果不稳定、聚类精度低,影响了该算法的聚类效果并制约了其应用范围.本文针对这个问题提出基于离群点检测的K-means算法,将离群点检测引入传统K-means算法,避免选择离群点作为初始聚类中心.在对非离群点进行聚类之后,根据离群点到各个聚类的距离,将其分配到相应的聚类之中.实验结果表明,算法在聚类精度上明显高于传统K-means算法.参考文献:【相关文献】〔1〕Stalling W. Operating systems: internals and design principles(4th Edition)〔M〕.New Jersey, Prentice-Hall, 2001.〔2〕MacQueen J. Some methods for classification and analysis of multivariate observations〔C〕. Proceedings of the 5th Berkeley Symposium on Mathematical Statistics and Probability. Berkeley: University of California Press, 1967.〔3〕张玉芳,毛嘉莉,熊忠阳. 一种改进的K-means算法〔J〕. 计算机应用, 2003,8(23):31-34. 〔4〕张文君,顾行发,陈良富,等. 基于均值-标准差的K均值初始聚类中心选取方法〔J〕. 遥感学报,2006,10(5):715-721.〔5〕Shehroz S Khan, Amir Ahmad. Cluster center initialization algorithm for K-Means clustering〔J〕. Pattern Recogintion Letters(S0167-8655),2004,25(11):1293-1320.〔6〕韩凌波,王强,蒋正锋,等. 一种基于改进的K-means初始聚类中心选取算法〔J〕. 计算机工程与应用,2010,46(17):150-153.〔7〕Elio L, Edgar A. Parallel algorithms for distance-based and density-based outliers 〔C〕.Proc of International Conference on IEEE. 2005: 767-776.〔8〕Kriegel H P, Schubert M, Zimek A. Angle-based outlier detection in high-dimensional data〔C〕. Proceedings of the 14th ACM SIGKDD international conference on knowledge discovery and data mining. ACM,2008:444-452.〔9〕张秀梅,王涛.模糊聚类分析方法在学生成绩评价中的应用〔J〕. 渤海大学学报:自然科学版,2007,28(2):169-172.。

L O F 离 群 点 检 测 算 法

L O F 离 群 点 检 测 算 法

数据挖掘(五)离群点检测5 异常检测方法异常对象被称作离群点。

异常检测也称偏差检测和例外挖掘。

异常检测的方法:(1)基于模型的技术:首先建立一个数据模型,异常是那些同模型不能完美拟合的对象;如果模型是簇的集合,则异常是不显著属于任何簇的对象;在使用回归模型时,异常是相对远离预测值的对象。

(2)基于邻近度的技术:通常可以在对象之间定义邻近性度量,异常对象是那些远离其他对象的对象。

(3)基于密度的技术:仅当一个点的局部密度显著低于它的大部分近邻时才将其分类为离群点。

(1)统计方法。

统计学方法是基于模型的方法,即为数据创建一个模型,并且根据对象拟合模型的情况来评估它们。

大部分用于离群点检测的统计学方法都是构建一个概率分布模型,并考虑对象有多大可能符合该模型。

离群点的概率定义:离群点是一个对象,关于数据的概率分布模型,它具有低概率。

这种情况的前提是必须知道数据集服从什么分布,如果估计错误就造成了重尾分布。

异常检测的混合模型方法:对于异常检测,数据用两个分布的混合模型建模,一个分布为普通数据,而另一个为离群点。

聚类和异常检测目标都是估计分布的参数,以最大化数据的总似然(概率)。

聚类时,使用EM算法估计每个概率分布的参数。

然而,这里提供的异常检测技术使用一种更简单的方法。

初始时将所有对象放入普通对象集,而异常对象集为空。

然后,用一个迭代过程将对象从普通集转移到异常集,只要该转移能提高数据的总似然(其实等价于把在正常对象的分布下具有低概率的对象分类为离群点)。

(假设异常对象属于均匀分布)。

异常对象由这样一些对象组成,这些对象在均匀分布下比在正常分布下具有显著较高的概率。

优缺点:(1)有坚实的统计学理论基础,当存在充分的数据和所用的检验类型的知识时,这些检验可能非常有效;(2)对于多元数据,可用的选择少一些,并且对于高维数据,这些检测可能性很差。

(2)基于邻近度的离群点检测。

一个对象是异常的,如果它远离大部分点。

一种多目标自适应DBSCAN离群点检测算法

一种多目标自适应DBSCAN离群点检测算法

一种多目标自适应DBSCAN离群点检测算法
黄剑柔;王茜;蔡星娟;李建伟
【期刊名称】《小型微型计算机系统》
【年(卷),期】2022(43)4
【摘要】在基于聚类的DBSCAN离群点检测算法中,存在参数Eps的不确定性和全局统一性问题.因此,本文首先提出了一种基于多目标优化的自适应DBSCAN离群点检测算法,根据不同数据集的特点,通过NSGA-II优化算法为数据集中的每个数据自适应地求解一个最优Eps,不仅避免了人为经验设置参数的不足,还解决了全局参数带来的聚类不精确问题.其次,通过基于Eps的LOF算法进行离群点检测,减少了计算量.最后,通过在不同数据集下的实验对比,结果表明本文提出的算法对于检测离群点有更高的准确率.
【总页数】5页(P702-706)
【作者】黄剑柔;王茜;蔡星娟;李建伟
【作者单位】太原科技大学计算机科学与技术学院
【正文语种】中文
【中图分类】TP181
【相关文献】
1.基于统计的自适应窗数据流离群点检测算法
2.一种基于谱嵌入和局部密度的离群点检测算法
3.基于网格LOF和自适应K-means的离群点检测算法
4.基于网格
LOF和自适应K-means的离群点检测算法5.一种基于邻域系统密度差异度量的离群点检测算法
因版权原因,仅展示原文概要,查看原文内容请购买。

outlier检测 统计方法

outlier检测 统计方法

outlier检测统计方法
Outlier检测是指识别数据集中与其余数据明显不同的观测值。

在统计学和数据分析中,outlier通常被认为是异常值,可能是由
于测量误差、实验误差或者真实的变异性。

有许多统计方法可以用
来检测outlier,下面我将从几个角度来介绍一些常见的方法。

1. 基于离群点得分的方法,这类方法通过计算每个数据点的离
群点得分来识别离群点。

常见的方法包括Z得分、学生化残差、Grubb's测试等。

这些方法基于假设数据符合正态分布,因此对非
正态分布的数据可能不够准确。

2. 基于距离的方法,这类方法基于数据点之间的距离来识别离
群点,例如K近邻算法、LOF(局部离群因子)算法等。

这些方法适
用于多维数据集,并且不受数据分布的影响。

3. 基于聚类的方法,这类方法将数据点聚类,然后识别不属于
任何簇的数据点作为离群点。

DBSCAN(基于密度的聚类算法)和OPTICS(基于密度的空间聚类算法)是常用的基于聚类的离群点检
测方法。

4. 基于模型的方法,这类方法使用统计模型来描述数据,然后识别与模型不符的数据点作为离群点。

例如,基于高斯混合模型的离群点检测方法可以识别不符合高斯分布的数据点。

总的来说,选择合适的离群点检测方法取决于数据的特征、数据分布、离群点的定义以及分析的目的。

在实际应用中,通常需要结合多种方法来全面检测离群点,以确保结果的准确性和可靠性。

希望这些信息对你有所帮助。

数据挖掘之5——离群点检测

数据挖掘之5——离群点检测

离群点检测(异常检测)是找出其行为不同于预期对象的过程,这种对象称为离群点或异常。

离群点和噪声有区别,噪声是观测变量的随机误差和方差,而离群点的产生机制和其他数据的产生机制就有根本的区别。

全局离群点:通过找到其中一种合适的偏离度量方式,将离群点检测划为不同的类别;全局离群点是情景离群点的特例,因为考虑整个数据集为一个情境。

情境离群点:又称为条件离群点,即在特定条件下它可能是离群点,但是在其他条件下可能又是合理的点。

比如夏天的28℃和冬天的28℃等。

集体离群点:个体数据可能不是离群点,但是这些对象作为整体显著偏移整个数据集就成为了集体离群点。

离群点检测目前遇到的挑战•正常数据和离群点的有效建模本身就是个挑战;•离群点检测高度依赖于应用类型使得不可能开发出通用的离群点检测方法,比如针对性的相似性、距离度量机制等;•数据质量实际上往往很差,噪声充斥在数据中,影响离群点和正常点之间的差别,缺失的数据也可能“掩盖”住离群点,影响检测到有效性;•检测离群点的方法需要可解释性;离群点检测方法1. 监督方法训练可识别离群点的分类器;但是监督方法检测离群点目前遇到几个困难:1.两个类别(正常和离群)的数据量很不平衡,缺乏足够的离群点样本可能会限制所构建分类器的能力;2.许多应用中,捕获尽可能多的离群点(灵敏度和召回率)比把正常对象误当做离群点更重要。

由于与其他样本相比离群点很稀少,所以离群点检测的监督方法必须注意如何训练和如何解释分类率。

One-class model,一分类模型考虑到数据集严重不平衡的问题,构建一个仅描述正常类的分类器,不属于正常类的任何样本都被视为离群点。

比如SVM决策边界以外的都可以视为离群点。

2.无监督方法正常对象在其中一种程度上是“聚类”的,正常对象之间具有高度的相似性,但是离群点将远离正常对象的组群。

但是遇到前文所述的集体离群点时,正常数据是发散的,而离群点反而是聚类的,这种情形下更适合监督方法进行检测。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 基于聚类的离群点检测方法 Rajendra Pamula, Jatindra Kumar Deka, Sukumar Nandi Department of Computer Science and Engineering Indian Institute of Technology Guwahati Guwahati, Assam, India

Email: @iitg.ac.in

摘要:本论文提出来一个聚类方法用以检测离群点。通过使用k均值聚类算法来从数据集中划分聚类。离聚类中心比较近的点不太可能是离群点,同时我们可以从聚类中去除掉这些点。接下来计算剩下的点和离群点的距离。需要计算的离群点度的降低可能是由于一些点的去除。我们声明离群度最高的点作为离群点。实验数据使用真实数据集,并论证得知,即使所计算的数据比较少,但所提出的方法比现存的方法优越。 关键字:离群点;聚类;基于距离;

1.引言 离群点是和数据集中正常点不一致的数据点。离群点检测在数据清理中有重要的应用,像欺诈检测,入侵检测,营销,传感网络,垃圾邮件检测。在数据点中找出异常点是离群点检测的基础理论。离群点检测暗示对象脱离给定的数据集。离群点的检测已经广泛地在统计领域研究。典型地就是用户需要使用统计分布对数据点建模,同时一个点被划为离群点主要看其和假定模型的关联。这些技术的主要问题是许多情况下用户可能对基础数据分布没有足够的了解。 特别是对数据集中的每一对关联对象使用距离函数的基于距离的技术。基于距离的定义描述了一个对数据分析有效的工具。这些定义以计算的方式是有效率的,而在部分已经检测的数据集中基于距离的离群点的得分是单调非递增函数。最近几年已经提出了许多快速检测基于距离的离群点算法。一些算法在CPU消耗上比较有效,而其他一些主要是侧重于I/O消耗。 许多方法用来查找偏离其他点的某个点,这意味着这个点是离群点。众所周知,数据集中的离群点是相当少的。因此也没必要为所有点提供这些方法。通过移除可能不是离群点的这些都,我们可以降低计算时间。 2

我们的工作是使用聚类和距离函数来区别那些不是离群点的点,然后去除这些点。接下来为所有剩余的点预测基于距离的方法,这些方法使用一个参数来区别一个点是不是离群点。我们假设数据集中有n个离群点,然后通过我们的方法得出的前n个点作为离群点。我们使用基于距离的局部离群系数来区别离群点。2.相关工作

Knorr and Ng是第一个提出基于距离的离群点检测方法。如果数据集中至少有pct部分对象和对象p的距离大于D,则对象p是一个基于距离的关于参数pct和D的离群点即DB(pct,D)离群点。这个定义被广泛接受,因为它归纳了许多统计离群的测试。 Ramaswamy等人提出了以上定义的扩展。所有点根据离群度划分。给定两个变量kn和w,如果Dk中比p有更高价值的对象数少于w,则对象p被认为是离群点,其中Dk表示对象p的第k个最近邻的距离。 随后,Angiulli 和Pizzuti提出了一个通过考虑全部对象领域来决定离群点的方法。所有点的划分是基于第k个最近邻距离的总和,而不是单独考虑第k个最近邻的距离。上述的三个定义是紧密相关的。 Breuning等人提出了数据集中用以表示每个对象离群程度的局部离群系数。这是关于离群点离群程度的第一个概念。离群系数局限在仅考虑一个约束领域的每个对象。一个对象的局部离群系数可以通过和它的领域比较其密度。它比基于距离的方法有更强的模型能力,因为它仅仅是基于对象本身的密度。基于密度的方法不能明确地把对象归类为离群点或者非离群点。 Zhang等人提出了局部基于距离的离群点检测方法。基于距离的局部离群系数可以确定一个对象偏离其邻域的程度。计算数据集中所有点的基于距离的局部离群系数,其复杂度为2()ON,其中N是数据集中点的个数。 聚类方法有许多,像CLARANS,DBSCAN,BIRCH和CURE都能检测离群点。然而,因为聚类方法的主要目的是发现聚类,其发展是为了使聚类最优化,而不是使离群点检测最优化。离群点的定义使用的是主观的被这些算法检测到的聚类。而基于距离的离群点定义则更加客观并且聚类是怎样在输入的数据中被检测出来的显得相对独立。 3

目前关于离群点的工作主要是仅仅集中在识别方面,在文献11中打算提供有意的知识,它是基于为什么一个待鉴定的离群点是异常的解释。

3.背景 我们使用基于距离的局部离群系数,它能表示一个点偏离其领域的程度。一个点的LDOF值高就意味着偏离其领域比较多,同时也就意味着可能是离群点。LDOF的计算如下: LDOF中的p,其定义如下:

():ppdLDOFpD

,','1:(,')(1)ppqqNqqDdistqqkk

计算所有点LDOF值计算消耗比较大,但算法的复杂度是2()ON。我们尝试 在去除那些可能不是离群点的点时降低计算复杂度。

4.基于局部离群点的剪枝 这部分主要描述提出的算法,它是LDOF的改进。在文献18中提出的LDOF算法的主要缺点是计算消耗巨大。这是因为数据集DS中的每个点都要计算其LDOF。而我们所关注的仅仅是离群点,它的数量是非常少的,对于所有点LDOF的计算用处较小,可以一起避免。 我们使用K均值算法来对数据集进行聚类。一旦聚类形成,则计算每个聚类的半径。去除那些离质心的距离比半径小的点。然后计算每个聚类中未被剪枝点的LDOF值。记录拥有高LDOF值的前n个点作为离群点。 A. 简述 基于剪枝算法的主要思想是首先对数据集进行聚类,然后从聚类中剪去那些可能不是离群点的点。而离群点的数目n可能会很小,这种额外的前序步骤可以帮助去除不是离群点的点。算法1描述了我们查找离群点的方法。 我们简要描述一下剪枝算法执行所需要的步骤。 (1)产生聚类:首先使用K均值聚类算法对整个数据集聚类,然后计算每个聚类4

的半径。 (2)剪枝:如果一个聚类包含的点比要求的离群点的数目要少,这个聚类就可以免去剪枝。 为每个聚类剪枝:计算聚类中每个点离质心的距离。如果距离比半径小,则去除该点。 (3)估算离群点:计算所有聚类中未被剪枝的点的LDOF。则拥有高LDOF值的前n个点作为离群点。 K均值算法复杂度为c*it*N,其中c是聚类的数目,it是重复计算的次数,N是数据点的数目。这个算法的总的复杂度是c*it*N+c*np+2(*)wN,其中np表示每个聚类中的点的平均个数,w表示剪枝后剩下的点所占的比率,这个值一般在0.4左右。聚类的数目c依赖与离群点的数目。然而c和it是比较小的,所以总得复杂度要小于2N。 算法1 离群点检测算法 输入:数据集DS,聚类数c,重复次数it,离群点个数n 1.使用K均值聚类算法得到聚类,得到Y 2.for each cluster jCY do

3. jRadius←()jradiusC 4.end for 5.if |Cj|>n then 6. for each point pi∈Cj do 7. if distance(pi,oj)8. prune(pi) 9. else 10. Add pi to U 11. end if 12. end for 13.else 14. for each point pi∈Cj do 5

15. Add pi to U 16. end for 17.end if 18.for each point pi∈U do 19. 计算 LDOF(pi) 20.end for 21.根据LDOF的值对所有点进行排序 22.拥有高LDOF值得前n个点作为离群点 B.实验结果 这一部分,我们比较离群点检测算法PLDOF和LDOF。 (1)医学诊断数据集:在现实的数据库中很难找到一个数据集来评估离群点检测算法,因为仅有很少的数据集能正确的认识到哪些对象是真正的行为异常。在这个试验中我们使用医学的数据集WDBC,这个数据集是为了乳房肿块诊断做原子特征提取的。这个数据集包括569个医学诊断记录,每个记录都有32个属性(ID,诊断信息,30个真实的输入特征)。这个诊断是二元的,要么是良性的要么是恶性的。我们认为良性的记录的正常数据。这个实验中,我们用所有的这357个良性诊断记录作为正常对象,然后加入5个恶性诊断记录作为离群点。通过改变邻近的大小k,把真实离群点占隐藏离群点的比率作为检测的精度。实验中,我们逐渐增加k的值,然后计算每个方法的计算精度。

图1 WDBC数据 6

为了进一步验证我们的方法,我们重复10次实验,每次离群点的数目不相同。每次独立执行10步,然后计算平均检测精度,k的取值范围从10到50.从图1中我们可以看出精度随前n个点和邻域的大小k变化而变化。正如图1所示,我们的算法比LDOF算法精度高。如果考虑钱20个点,两个算法都能检测到所有的离群点。我们同时也改变邻域大小k来进行实验。可以看到,两个算法在k=30时精度达到了极限。从表1中我们可以看出虽然我们从数据集中剪去了57%的点,但是两个算法的精度还是差不多。由于剪去了57%的点,计算的消耗也大大降低,这也是基于LDOF剪枝方法值得肯定的一面。 表1 WDBC数据集的剪枝比率

(2)酵母数据集:在这个实验中,我们使用酵母数据集,这个数据集曾被用来查找蛋白质集中的地方。数据集包括1484个对象,每个对象有如下属性:名字和其他8个输入特征。我们认为在C-terminus中值为0的目标信号为正常数据,其中POX的值比异常的大2.实验中我们使用整个1474个记录作为正常对象,然后加入10个记录作为离群点。我执行与医学诊断数据集相似类型的实验可以观察到相同的趋势。实验结果如图2和表2.可以看出我们可以从原始数据集中剪去超过60%的点而不丢失离群点。 表2 酵母数据集的剪枝比率

相关文档
最新文档