基于聚类的离群点检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于聚类的离群点检测方法
Rajendra Pamula, Jatindra Kumar Deka, Sukumar Nandi
Department of Computer Science and Engineering
Indian Institute of Technology Guwahati
Guwahati, Assam, India
Email:
摘要:本论文提出来一个聚类方法用以检测离群点。通过使用k均值聚类算法来从数据集中划分聚类。离聚类中心比较近的点不太可能是离群点,同时我们可以从聚类中去除掉这些点。接下来计算剩下的点和离群点的距离。需要计算的离群点度的降低可能是由于一些点的去除。我们声明离群度最高的点作为离群点。实验数据使用真实数据集,并论证得知,即使所计算的数据比较少,但所提出的方法比现存的方法优越。
关键字:离群点;聚类;基于距离;
1.引言
离群点是和数据集中正常点不一致的数据点。离群点检测在数据清理中有重要的应用,像欺诈检测,入侵检测,营销,传感网络,垃圾邮件检测。在数据点中找出异常点是离群点检测的基础理论。离群点检测暗示对象脱离给定的数据集。离群点的检测已经广泛地在统计领域研究。典型地就是用户需要使用统计分布对数据点建模,同时一个点被划为离群点主要看其和假定模型的关联。这些技术的主要问题是许多情况下用户可能对基础数据分布没有足够的了解。
特别是对数据集中的每一对关联对象使用距离函数的基于距离的技术。基于距离的定义描述了一个对数据分析有效的工具。这些定义以计算的方式是有效率的,而在部分已经检测的数据集中基于距离的离群点的得分是单调非递增函数。最近几年已经提出了许多快速检测基于距离的离群点算法。一些算法在CPU消耗上比较有效,而其他一些主要是侧重于I/O消耗。
许多方法用来查找偏离其他点的某个点,这意味着这个点是离群点。众所周知,数据集中的离群点是相当少的。因此也没必要为所有点提供这些方法。通过移除可能不是离群点的这些都,我们可以降低计算时间。
我们的工作是使用聚类和距离函数来区别那些不是离群点的点,然后去除这些点。接下来为所有剩余的点预测基于距离的方法,这些方法使用一个参数来区别一个点是不是离群点。我们假设数据集中有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
()
O N,其中N是数据集中点的个数。
聚类方法有许多,像CLARANS,DBSCAN,BIRCH和CURE都能检测离群点。然而,因为聚类方法的主要目的是发现聚类,其发展是为了使聚类最优化,而不是使离群点检测最优化。离群点的定义使用的是主观的被这些算法检测到的聚类。而基于距离的离群点定义则更加客观并且聚类是怎样在输入的数据中被检测出来的显得相对独立。
目前关于离群点的工作主要是仅仅集中在识别方面,在文献11中打算提供有意的知识,它是基于为什么一个待鉴定的离群点是异常的解释。
3.背景
我们使用基于距离的局部离群系数,它能表示一个点偏离其领域的程度。一个点的LDOF 值高就意味着偏离其领域比较多,同时也就意味着可能是离群点。LDOF 的计算如下:
LDOF 中的p ,其定义如下:
():p
p d LDOF p D =
,','
1:(,')(1)p p q q N q q D dist q q k k ∈≠=-∑ 计算所有点LDOF 值计算消耗比较大,但算法的复杂度是2()O N 。我们尝试 在去除那些可能不是离群点的点时降低计算复杂度。
4.基于局部离群点的剪枝
这部分主要描述提出的算法,它是LDOF 的改进。在文献18中提出的LDOF 算法的主要缺点是计算消耗巨大。这是因为数据集DS 中的每个点都要计算其LDOF 。而我们所关注的仅仅是离群点,它的数量是非常少的,对于所有点LDOF 的计算用处较小,可以一起避免。
我们使用K 均值算法来对数据集进行聚类。一旦聚类形成,则计算每个聚类的半径。去除那些离质心的距离比半径小的点。然后计算每个聚类中未被剪枝点的LDOF 值。记录拥有高LDOF 值的前n 个点作为离群点。
A . 简述
基于剪枝算法的主要思想是首先对数据集进行聚类,然后从聚类中剪去那些可能不是离群点的点。而离群点的数目n 可能会很小,这种额外的前序步骤可以帮助去除不是离群点的点。算法1描述了我们查找离群点的方法。
我们简要描述一下剪枝算法执行所需要的步骤。
(1)产生聚类:首先使用K 均值聚类算法对整个数据集聚类,然后计算每个聚类