一种基于密度的快速聚类算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第37卷第11期
2000年11月计算机研究与发展JOU RNAL O F COM PU T ER R ESEA RCH &D EV ELO PM EN T V o l 137,N o 111N ov .2000
原稿收到日期:1999209220;修改稿收到日期:1999212209.本课题得到国家自然科学基金项目(项目编号69743001)和国家教委博士点教育基金的资助.周水庚,男,1966年生,博士研究生,高级工程师,主要从事数据库、数据仓库和数据挖掘以及信息检索等的研究.周傲英,男,1965年生,教授,博士生导师,主要从事数据库、数据挖掘和W eb 信息管理等研究.曹晶,女,1976年生,硕士研究生,主要从事数据库、数据挖掘等研究.胡运发,男,1940年生,教授,博士生导师,主要从事知识工程、数字图书馆、信息检索等研究.
一种基于密度的快速聚类算法
周水庚 周傲英 曹 晶 胡运发
(复旦大学计算机科学系 上海 200433)
摘 要 聚类是数据挖掘领域中的一个重要研究方向.聚类技术在统计数据分析、模式识别、图像处理等领域有广泛应用.迄今为止人们提出了许多用于大规模数据库的聚类算法.基于密度的聚类算法DBSCAN 就是一个典型代表.以DBSCAN 为基础,提出了一种基于密度的快速聚类算法.新算法以核心对象邻域中所有对象的代表对象为种子对象来扩展类,从而减少区域查询次数,降低I O 开销,实现快速聚类.对二维空间数据测试表明:快速算法能够有效地对大规模数据库进行聚类,速度上数倍于已有DBSCAN 算法.
关键词 空间数据库,数据挖掘,聚类,密度,快速算法,代表对象
中图法分类号 T P 311.13;T P 391
A FAST D ENSIT Y -BASED CL USTER ING AL G OR ITH M
ZHOU Shu i 2Geng ,ZHOU A o 2Y ing ,CAO J ing ,and HU Yun 2Fa
(D ep a rt m en t of Co mp u ter S cience ,F ud an U n iversity ,S hang ha i 200433)
Abstract C lu stering is a p rom ising app licati on area fo r m any fields including data m in ing ,statistical data analysis ,p attern recogn iti on ,i m age p rocessing ,etc .In th is paper ,a fast den sity 2based clu stering algo rithm is developed ,w h ich con siderab ly speeds up the o riginal DB SCAN algo rithm .U n like DB SCAN ,the new DB SCAN u ses on ly a s m all num ber of rep resen tative ob jects in a co re ob ject’s neighbo rhood as seeds to exp and the clu ster so that the execu ti on frequency of regi on query can be decreased ,and con sequen tly the I O co st is reduced .Experi m en tal resu lts show that the new algo rithm is effective and efficien t in clu stering large 2scale databases ,and it is faster than the o riginal DB SCAN by several ti m es .
Key words spatial database ,data m in ing ,clu stering ,den sity ,fast algo rithm ,rep resen tative ob jects
1 概 述
近10多年来,数据挖掘逐渐成为数据库研究领域的一个热点[1].其中,聚类分析就是广为研究的问题之一.所谓聚类,就是将数据库中的数据进行分组,使得每一组内的数据尽可能相似而不同组内的数据尽可能不同.聚类技术在统计数据分析、模式识别、图像处理等领域都有广泛的应用前景.迄今为止,人们已经提出了许多聚类算法[2~7].所有这些算法都试图解决大规模数据的聚类问题.以基于密度的聚类算法DB SCAN [4]为基础,本文提出一种基于密度的快速聚类算法.通过选用核心对象附近区域包含的所有对象的代表对象作为种子对象来扩展类,快速算法减少了区域查询的次数,从而减低了聚类时间和I O 开销
.本文内容安排如下:首先在第2节中介绍基于密度的聚类算法DB SCAN 的基本思想,并分析它的局限
8821计算机研究与发展2000年
性;然后第3节描述基于密度的快速聚类算法;接着在第4节中给出对新算法的测试结果;第5节为结束语,同时指出今后的研究方向.
2 基于密度的聚类算法D BSCAN
基于密度的聚类算法DB SCAN利用类的密度连通特性,可以快速发现任意形状的类.其基本思想是:对于一个类中的每一对象,在其给定半径的邻域中包含的对象不能少于某一给定的最小数目.在DB SCAN 中,发现一个类的过程是基于这样的事实:一个类能够被其中的任意一个核心对象所确定[4].
为了发现一个类,DB SCAN先从D中找到任意一对象p,并查找D中关于Ep s和M inP ts的从p密度可达的所有对象.如果p是核心对象,也就是说,半径为Ep s的p的邻域中包含的对象数不少于M inP ts,则根据算法可以找到一个关于参数Ep s和M inP ts的类.如果p是一个边界点,即半径为Ep s的p的邻域包含的对象数小于M inP ts,则没有对象从p密度可达,p被暂时标注为噪声点.然后,DB SCAN处理数据库D中的下一个对象.
密度可达对象的获取是通过不断执行区域查询来实现.一个区域查询返回指定区域中的所有对象.为了有效地执行区域查询,DB SCAN算法使用了空间查询中的R32树结构.在进行聚类前,必须建立针对所有数据的R32树.另外,DB SCAN要求用户指定一个全局参量Ep s(为了减少计算量,预先确定参数M inP ts).为了确定Ep s值,DB SCAN计算任意对象与它的第k个最临近的对象之间的距离.然后,根据求得的距离由小到大进行排序,并绘出排序后的图,称做k2d ist图.k2d ist图中的横坐标表示数据对象与它的第k个最近的对象间的距离;纵坐标则为对应于某一k2d ist距离值的数据对象的个数.R32树的建立和k2d ist图的绘制是非常消耗时间的过程.此外,为了得到好的聚类结果,用户必须根据k2d ist图,通过试探选定一个比较合适的
k2d ist值,即Ep s值.再就是,DB SCAN不进行任何的预处理而直接对整个数据库进行聚类操作.这样当数据库非常大时,就必须有大内存量支持,I O消耗也非常大.
3 一种基于密度的快速聚类算法
3.1 算法思想
DB SCAN算法的平均执行时间复杂度为O(n log n)(n是数据库中包含的数据对象数目).聚类过程的大部分时间是用在区域查询操作上.实际上,DB SCAN算法进行聚类的过程就是一个不断执行区域查询的过程.因此,如果能够减少区域查询执行的次数,就可以提高聚类的速度.这里,从减少区域查询频度的目的出发,给出一种快速的基于密度的聚类算法.
DB SCAN算法选择一个全局k2d ist值来进行聚类.这样,对于那些最稀的类来说,包含在核心对象的半径为Ep s且Ep s等于k2d ist的邻域中的对象数约为k.然而,对于别的类而言,包含在大多数核心对象的具有相同半径值的邻域中的对象数将大于k.DB SCAN算法对核心对象的邻域中包含的所有对象都执行区域查询操作.对类C中的某一给定核心对象p来说,可以想象它的邻域中所包含的所有对象的邻域将会互相覆盖.假定q是p邻域中的一个对象,如果它的邻域被p邻域中的其它对象的邻域所覆盖,则表明对q的区域查询是可以省掉的.这是因为q的邻域中所包含的对象可以通过对覆盖它的其它对象执行区域查询得到.也就是说,q没有必要作为种子对象用于类扩展.
实际上,对于密集的类来说,在一个核心对象的邻域中有相当多的对象可以不用作为类扩展用的种子对象.这样,从加速DB SCAN算法来讲,应当选择核心对象邻域中的部分代表对象,而不是像DB SCAN那样选择所有对象,作为种子对象用于类的扩展.这里称这些被选择的对象为对应邻域的代表对象.直观地,p的邻域中靠边沿的对象更适合作为侯选代表对象,因为靠内部的对象的邻域往往被靠边沿的对象的邻域所覆盖.因此,选择代表对象其实就是选择一些对象,这些对象能够近似地表征所在邻域的形状.图1所示为一个二维数据空间实例,这里的数据对象就是点.其中p是类C中的一个核心对象,q i(i=1~4)就是p邻域的代表对象,它们将作为种子对象用于对p的邻域的扩展.这里代表对象数为4.