基于限定区域数据取样的密度聚类方法

文档序号:6526218阅读:141来源:国知局
基于限定区域数据取样的密度聚类方法
【专利摘要】基于限定区域数据取样的密度聚类方法,定义L表示核心点列表,S表示限定区域集合,先输入控制参数(Eps,MinPts)和数据集D,经聚类后,输出聚类结果。本发明在不增加时间和空间复杂度的基础上利用参数Eps查找核心点的邻域点和扩展点,并在限定区域(Eps,2Eps)内抽取代表点进行聚类,将每次数据取样的范围限定在距离核心点较近的区域,以此来提高聚类质量,降低大簇分裂产生过多微簇的可能性,提高了聚类精度。
【专利说明】基于限定区域数据取样的密度聚类方法
【技术领域】
[0001]本发明属于数据挖掘【技术领域】,涉及一种基于限定区域数据取样的密度聚类方法。
【背景技术】
[0002]聚类技术是数据挖掘中一个重要的研究课题,基于密度的聚类方法是聚类分析中一种重要的手段,这类方法将簇看作数据空间中被低密度区域分割开的高密度区域。DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种简单、有效的密度聚类算法,该算法不断地将密度足够高的区域加入到簇中,最终形成密度相连点的最大集合,它可以发现任意形状、不同大小的簇并能有效地处理噪声点。由于该算法作用于完整数据集,采用全局性表征密度的参数,且需要大量的内存支持和高额的I/O开销,这就使得DBSCAN对于空间大数据集的聚类效果较差,又因为遍历整个数据集进行区域查询耗时巨大,造成该算法具有低效的时间性能,因此许多学者提出了融合数据抽样思想的DBSCAN改进算法,如DBRS,IDBSCAN, DBSCALE。抽样技术可以提高算法的执行效率,但同时降低了聚类的精度。
[0003]DBSCAN是一种典型的基于密度的聚类算法,它通过查询数据集中每个对象的Eps邻域来搜索簇,如果点P的Eps邻域内包含多于MinPts个数据点,则创建一个以点P为核心点的新簇,然后根据这些核心点迭代地聚集直接密度可达的对象,这个过程会涉及一些簇的合并,当没有新的点被添加到任意一个簇中时算法结束。DBSCAN算法可以发现任意形状的簇,并能有效地屏蔽噪声数据的干扰,但是对数据集中每一个数据点进行迭代邻域查找的过程耗时巨大,一般情况下时间复杂度为0(n2),借助空间索引结构R*-树和k-dist图可将其降低到O(nlogn),然而建立R*-树与绘制k_dist图也是非常耗时的工作,因此对于空间大数据集的聚类,DBSCAN算法表现出低效的时间性能。
[0004]为了减少区域查询的次数,降低算法的时间复杂度,Xin Wang与HowardJ.Hamilton等人提出结合数据抽样技术的DBSCAN改进算法-DBRS,该算法迭代地从数据集中抽取未被聚类的核心点进行区域查找,通过发现点集的共同邻域来合并簇,最终实现聚类。对于空间大数据集的聚类,DBRS算法可以节省大量的时间,但是在降低算法时间复杂度的同时不可避免的影响了聚类质量,随机取样与簇的合并操作存在很大的盲目性,正是这种隐患的存在导致聚类精度的降低。如图1所示的情形:理论上,数据点应被聚为同一个簇,但是采用DBRS算法(假定MinPts=5),每一次从数据集中随机选取数据点聚类,若第一次选取点Cl为核心点,根据算法思想,判断其Eps邻域点与现存簇无交集,将该点及其邻域点聚为一类并分配新簇号C1,第二次随机选取c2为核心点,其邻域点与现存簇仍无交集,为点c2与其邻域点分配新簇号C2,第三次选取点c3为核心点,情形如前所述,再次为其分配新簇号C3,继续查询,由于不再存在可将这3个簇合并的未被分类的数据点,因此本属于一个大簇的数据点集被分割为3个微簇,使得聚类精度下降,聚类质量不佳。
【发明内容】

[0005]本发明的目的是提供一种基于限定区域数据取样的密度聚类方法,解决了现有技术中聚类需要大量的内存支持和高额的I/O开销的问题。
[0006]本发明的技术方案是,基于限定区域数据取样的密度聚类方法,定义L表示核心点列表,S表示限定区域集合,先输入控制参数半径、阈值和数据集D,经聚类后,输出聚类结果。
[0007]本发明的特点还在于,聚类过程包括以下步骤:
[0008]步骤①,判断L是否为空,若为空,则执行步骤②;否则从L中选取一个核心点P,将其限定区域内的数据点加入集合S,执行步骤③;
[0009]步骤②,在数据集D中随机抽取一个未被分类的数据点P进行区域查找,若P点为核心点,则创建新簇并分配新簇号,将P点限定区域内的点加入集合S,执行步骤③;否则对点P不做处理;若数据集中不存在未被分类的点,算法结束,输出聚类结果;
[0010]步骤③,判断集合S是否为空,若为空,返回步骤①;若非空,从集合S中选取一个未被分类的点q进行区域查找,判断q点所属类型,若为有交集核心点,执行步骤④;若为有交集非核心点,执行步骤⑤;若为无交集核心点,执行步骤⑥;若为无交集非核心点,执行步骤⑦;
[0011 ] 步骤④,将点q及其Eps邻域点加入点P所属簇中,将q点限定区域内的点加入集合S,去除S中重复的点,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0012]步骤⑤,将点q及其Eps邻域点加入点P所属簇中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0013]步骤⑥,将点q及其Eps邻域点聚类并分配新簇号,将点q加入L中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0014]步骤⑦,标记点q为噪声点,从集合S中除去点q,返回步骤③继续执行。
[0015]本发明具有如下有益效果:
[0016]1、本发明提出采用限定区域数据取样技术的密度聚类方法,将每次数据取样的范围限定在距离核心点较近的区域,以此来提高聚类质量,降低大簇分裂产生过多微簇的可能性,提高了聚类精度。
[0017]2、本发明在执行效率与聚类质量方面对DBSCAN和DBRS进行了改进,在不增加时间和空间复杂度的基础上利用参数Eps查找核心点的邻域点和扩展点,并在限定区域(Eps,2Eps)内抽取代表点进行聚类。实验证明限定区域内抽取核心点进行簇的扩充可以有效地降低时间复杂度,提高聚类精度。
[0018]3、现有的DBSCAN算法对每一个数据点进行迭代区域查找,其时间复杂度为0(n2),采用R*-树空间索引结构可将其降至O(nlogn),DBRS与DBSCALE算法利用数据抽样技术,其时间复杂度为O(nlogn)。与DBRS相比较,本发明在限定区域(Eps,2Eps)内进行数据取样,在最极端的情况下(每个核心点的(Eps,2Eps)邻域内不存在数据点),其时间复杂度与DBRS相同。另外,本发明在进行簇的扩充时仅需考虑与核心点所属簇是否存在共同邻域,避免了 DBRS中与所有现存簇的比较。DBSCALE算法中,种子点的选取操作也增加了计算的额外开销。本发明在算法时间复杂度上优于DBSCAN,DBRS与DBSCALE,整体上提高了执行效率。[0019]4.现有的DBRS算法随机抽取核心点进行簇的扩充存在很大的盲目性,可能将相异度很小的数据点聚在不同簇中。DBSCALE算法利用参数Eps和远离心力的原理来确定种子点,这样的种子点可能并不是数据集中实际存在的点,此种情况下,需要选取真实数据点作为近似种子点进行簇的扩充,然而,对近似种子点的邻域查找并不能产生理想的覆盖范围,从而不能有效地聚类。本发明在不增加时间复杂度的前提下选取限定区域(Eps,2Eps)内的扩展点进行簇的扩充,从而降低了大簇分裂的概率。理论分析和实验结果证明本发明有效地改进了 DBSCAN和DBRS算法的缺陷,具有良好的聚类质量。
【专利附图】

【附图说明】
[0020]图1是微族广生不意图;
[0021]图2是本发明基于限定区域数据取样的密度聚类方法流程图。
【具体实施方式】
[0022]下面结合附图和【具体实施方式】对本发明进行详细说明。
[0023]本发明在算法执行效率与聚类精度方面对DBSCAN和DBRS算法进行改进,提出在不增加时间和空间复杂度的基础上利用参数Eps查找核心点的邻域点和扩展点,并在限定区域内进行数据取样。所谓限定区域指一个核心点的(Eps,2Eps)邻域。
[0024]本发明涉及的概念定义如下:
[0025]定义I,限定区域,以给定对象为圆心,介于半径分别为Eps与2Eps两个圆之间的带状区域。
[0026]定义2,扩展点,核心点的(Eps,2Eps)限定区域内所包含的数据点。
[0027]定义3,骨骼点与骨骼点集,对于一个给定簇C,如果存在一个集合S同时满足:
[0028]i:S<z C;
[0029]ii:5=!-vlU N'—(χ) = C& I ⑴ MinPts、;

x^S
[0030]ii1:不存在一个集合XeC满足上述两个条件且|s’ I < |s| ;
[0031]则称集合S为簇C的骨骼点集,数据点X为簇C的骨骼点。
[0032]为了便于描述,定义L表示核心点列表,S表示限定区域集合。本发明执行步骤如下:
[0033]首先,输入控制参数Eps (半径)、MinPt (阀值)和数据集D ;
[0034]然后,执行以下步骤:
[0035]①判断L是否为空,若为空,则执行步骤②;否则从L中选取一个核心点P,将其限定区域内的数据点加入集合S,执行步骤③;
[0036]②在数据集D中随机抽取一个未被分类的数据点P进行区域查找,若P点为核心点,则创建新簇并分配新簇号,将P点限定区域内的点加入集合S,执行步骤③;否则对点P不做处理。若数据集中不存在未被分类的点,算法结束,输出聚类结果;
[0037]③判断集合S是否为空,若为空,返回步骤①;若非空,从集合S中选取一个未被分类的点q进行区域查找,判断q点所属类型,若为有交集核心点,执行步骤④;若为有交集非核心点,执行步骤⑤;若为无交集核心点,执行步骤⑥;若为无交集非核心点,执行步骤⑦;[0038]④将点q及其Eps邻域点加入点P所属簇中,将q点限定区域内的点加入集合S,去除S中重复的点,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0039]⑤将点q及其Eps邻域点加入点P所属簇中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0040]⑥将点q及其Eps邻域点聚类并分配新簇号,将点q加入L中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行;
[0041]⑦标记点q为噪声点,从集合S中除去点q,返回步骤③继续执行。
[0042]为了充分验证本发明的有效性,分别选取三个典型的密度聚类算法DBSCAN、DBRS和DBSCALE (Density-Based Clustering Algorithm for Large Databases)来与本发明进行对比实验,其中DBSCALE算法是基于数据取样技术的DBSCAN改进算法,它利用远离心力的原理查询与核心点距离为d Cd由输入参数Eps确定)的数据点,并将其作为种子点进行簇的扩充。
[0043]为了证明本发明的正确性与实用性,模拟仿真实验选取UCI机器学习数据库中的真实数据集Iris和Wine。两个数据集的属性及其参数如表1所示:
[0044]表1数据集的属性表
【权利要求】
1.基于限定区域数据取样的密度聚类方法,其特征在于,定义L表示核心点列表,S表示限定区域集合,先输入控制参数半径、阈值和数据集D,经聚类后,输出聚类结果。
2.如权利要求1所述的基于限定区域数据取样的密度聚类方法,其特征在于,所述聚类包括以下步骤: 步骤①,判断L是否为空,若为空,则执行步骤②;否则从L中选取一个核心点P,将其限定区域内的数据点加入集合S,执行步骤③; 步骤②,在数据集D中随机抽取一个未被分类的数据点P进行区域查找,若P点为核心点,则创建新簇并分配新簇号,将P点限定区域内的点加入集合S,执行步骤③;否则对点P不做处理;若数据集中不存在未被分类的点,算法结束,输出聚类结果; 步骤③,判断集合S是否为空,若为空,返回步骤①;若非空,从集合S中选取一个未被分类的点q进行区域查找,判断q点所属类型,若为有交集核心点,执行步骤④;若为有交集非核心点,执行步骤⑤;若为无交集核心点,执行步骤⑥;若为无交集非核心点,执行步骤⑦; 步骤④,将点q及其Eps邻域点加入点P所属簇中,将q点限定区域内的点加入集合S,去除S中重复的点,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行; 步骤⑤,将点q及其Eps邻域点加入点P所属簇中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行; 步骤⑥,将点q及其Eps邻域点聚类并分配新簇号,将点q加入L中,并将q点及其Eps邻域点从集合S中除去,返回步骤③继续执行; 步骤⑦,标记点q为噪声点,从集合S中除去点q,返回步骤③继续执行。
【文档编号】G06F17/30GK103714153SQ201310739440
【公开日】2014年4月9日 申请日期:2013年12月26日 优先权日:2013年12月26日
【发明者】周红芳, 王啸, 赵雪涵, 段文聪, 郭杰, 张国荣, 王心怡, 何馨依 申请人:西安理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1