您的当前位置:首页正文

改进K_means的空间聚类算法

2021-09-25 来源:好走旅游网
第25卷第7期2008年7月 

计算机应用研究

ApplicationResearchofComputersVol.25No.7Jul.2008

改进K2means的空间聚类算法

赵 伟

1,2

3

,张 姝,李文辉

21

(1.吉林大学计算机科学与技术学院,长春130012;2.长春工业大学计算机科学与工程学院,长春130012)

摘 要:提出了基于K2means的四叉树与R2link树的混合结构树,提高了R2link树的查询性能,在K2means中采用均值—标准差确定初始聚类中心,提高了收敛速度,通过距离准则函数来优化K值,避免K值的盲目选取。与R2link相比空间开销代价有时略大,但换取了更高的性能,且数据量越多,此种结构的整体性能越好,适合于海量数据。

关键词:空间数据库;R2link树;四叉树;空间聚类;空间索引

中图分类号:TP30116   文献标志码:A   文章编号:100123695(2008)0721995203ImprovedK2meansclusteringalgorithmonspaceZHAOWei,ZHANGShu,LIWen2huiChangchunUniversityofTechnology,Changchun130012,China)

1,2

21(1.CollegeofComputerScience&Technology,JilinUniversity,Changchun130012,China;2.SchoolofComputerScience&Engineering,

Abstract:ThispaperpresentedaquickspeedspatialindexingstructurewhichwasbasedonR2linktree.AnditusedK2

meansalgorithminthestructure.InK2meansalgorithm,adoptedvalue2standarddeviationtoascertaintheinitialclusteringcen2trestoimproveconvergencespeedandascertainultimateKvaluebydistancecriterionfunctiontomakeKvaluemostsuitable.ThestructuresometimesconsumesmorestoragethanR2linkbutgainsbetterperformance.Furthermore,dataquantitymore,thiskindofstructureoverallperformanceisbetter.

Keywords:spatialdatabase;R2linktree;quad2tree;spatialclustering;spatialindexstructure

  随着计算机技术的发展,空间数据库应用范围已经扩展到了机器人、计算机视觉、图像识别、环境保护、地理信息处理等领域

[1]

xl∈ci

6xl表示第i个簇的中心位置,i=1,…,k;ni是簇Ci中数据

K2means聚类算法属于聚类分析方法中一种基本的且应

。为了提高空间数据的处理效率,空间数据库必须利

项的个数;d(xl,mi)表示xl到mi的距离。

用最广的划分方法,是一种在无类标号数据中发现簇和簇中心的方法[4]。该算法的基本思想是:给定一个包含n个数据对象的数据库,以及要生成簇的数目K,随机选取K个对象作为初始的K个聚类中心;然后计算剩余各个样本到每一个聚类中心的距离,把该样本归到离它最近的那个聚类中心所在的类,对调整后的新类使用平均值的方法计算新的聚类中心;如果相邻两次的聚类中心没有任何变化,说明样本调整结束且聚类平均误差准则函数已经收敛。本算法在每次迭代中都要考察每个样本的分类是否正确,若不正确,就要调整,在全部样本调整完后,修改聚类中心,进入下一次迭代。如果在一次迭代算法中,所有的样本被正确分类,则不会有调整,聚类中心不会有变化。在算法迭代中值在不断减小,最终收敛至一个固定的值。该准则也是衡量算法是否正确的依据之一。1 四叉树与

k

用有效的空间索引机制。常见的空间索引一般是采用自顶向下、逐级划分空间的方法,比较有代表性的有BSP树、KDB树、

R树、R+树、CELL树、四叉树和网型空间索引等

[2]

聚类分析是提高空间索引性能的一种非常有效的方法。目前已有K均值、CURE、ISODATA等多种算法。这些算法多数依赖于初始解的选择。当初始解选择不好时,会影响聚类质量,降低空间检索效率,且这些算法执行结果与数据输入次序有关

[3]

本文采用均值—标准差的方法决定初始聚类中心,使用准则函数优化K值,改进了K2means算法,并用此构造R2link,从而提高了空间检索的效率。

 基本原理

111 K2means算法

2树混合的结构

定义1 K2means聚类问题:假设N个数据集合X={X1,…,Xn}是待聚类数据。其中:Xj={Xj1,…,Xjq}∈Rq,j=1,…,n。K均值聚类问题是要找到X的一个划分Pk={C1,…,

Ck},使目标函数f(Pk)=66d(xl,mi)最小。其中:mi=1/ni

i=lxl∈cik

四叉树是2叉树。让四叉树的每个节点均指向一棵与其对应索引空间相关联的R2link树。实质就是将一棵大的R2

link树分解成多棵小的R2link树,将查询尽可能限定在局部空

间区域,从而提高查找性能。

混合结构是由一棵深度为d的2k四叉树Qt和n棵R2link

收稿日期:2007206206;修回日期:2007209228  基金项目:国家自然科学基金资助项目(60573182);教育部博士点基金资助项目

(20060183042);吉林省科技发展计划资助项目(20060527,20040531)

作者简介:赵伟(19672),男,博士研究生,主要研究方向为数据库系统、虚拟现实技术等(prince1205@163.com);张姝(19802),女,硕士研究生,主要研究方向为数据库系统、虚拟现实技术等;李文辉(19612),男,教授,博导,博士,主要研究方向为计算机图形学与虚拟现实技术等.

・1996・

d-1i=0

计算机应用研究

最小值时,K为最优解。1 基于改进的

2

构建的

2

算法

第25卷

树组成。其中设d>0,n=6(2k)i,四叉树Qt共有n个节点,按宽度遍历方法进行编号依次为Qt0,Qt1,…,Qtn-1。Qt将整个索引空间(S)分成n个d级子空间(IS0,IS1,…,ISn-1)。每一级的所有子空间两两不相交,且一起构成整个索引空间S。

n棵R2link树(Rt0,Rt1,…,Rtn-1)分别与四叉树Qt的n个节点及四叉树Qt划分的n个子空间相关联,[(i=0,1,…,n-1),Qti←→Si←→Rti]。Si与Rti相关联,即Rti用于索引属于Si的空间目标。

R2link树采用最小外接矩形来界定空间实体,其不可避免

地导致约束矩形区重叠,而覆盖区域的大小和区域的重叠程度是影响搜索性能的重要因素。受聚类算法启发,引入新的节点分配原则,在建构R2link树时,使用改进的K2means算法来代替传统R2link树的面积增量最小准则,以减少R2link树的空间矩形的空白区域与重叠区域,从而大大提高空间查询的效率。

它的基本思想是采用均值—标准差选取初始聚类中心。算法的基本思想是:

a)算出所有数据的均值假定为μ,标准差为σ。也就是说数据主要分布在(μ-σ,μ+σ)之间,在此区间由公式mi=(μ-σ)+2σi/N(i=1,…,N/M)选取K个点,即为初始聚类中心。其中K=N/M。b)计算各个数据对象到各聚类中心的距离,把数据对象归到离它最近的那个聚类中心所在的类。

c)对调整后的新类计算新的聚类中心,如果相邻两次的聚类中心没有任何变化,说明数据对象调整结束。

d)K值是预先给定的,未必就是最优解。基于类际离散度最大、类内离散度最小的原则,使用准则函数对K值进一步优化。

以确定的聚类中心为初始聚类中心,计算各个数据对象与初始聚类中心距离,并计算距离准则函数,直到K大于或等于

[N/M]。其中使准则函数值最小的K值作为最终划分聚类的

定义2 空间目标r属于Si。

r完全被Si所包围,并且Si是所有包围P的子空间中最

小的。以图1所示的二维空间为例,混合结构由一棵深度为2的四叉树和5棵R2link树组成,整个空间分成2级共5个子空间:IS0,IS1,IS2,IS3,IS4(IS0=IS1∪IS2∪IS3∪IS4),Rt0,Rt1,

Rt2,Rt3和Rt4这5棵R2Link树分别与它们相关联。

2 基于改进的K2means构建的R2link算法211 改进的K2means算法21111 初始点的选取

由K均值算法可知,如果所选取的初始聚类中心在几个分布密集区域的中心,其周围的点容易分到最近的点,聚类收敛越快,需要迭代的次数越少[7]。

要分析所有数据的分布情况,计算其分布密度,可以根据随机函数的分布知识,聚类的数据应主要分布在所有数据的均值附近。标准差是评价数据分布的一个重要指标,假设所有数

据的均值为μ,标准差为σ,则数据应该主要分布在(μ-σ,μ+σ)之间。假设分类数为N,选择初始分类点为(μ-σ,μ+σ)之间的N个等分点。设第i类的初始分类中心为mi,则

σi/N;i=1,…,Nmi=(μ-σ)+2

个数。

e)将空间对象重新根据欧氏距离公式分配到相应的聚类,更新各聚类中心,直到聚类结果不变。

在对空间对象分组时,基于改进的K2means产生的分组要优于基于面积增量最小准则产生的分组,如图2、3所示。

如果参与分类的是多维数据,如d维,则每个聚类初始聚

类中心的各个向量应在(μl-σl,μl+σl)之间,设第i类聚类初σil/N。始中心值为{mi1,mi2,…,mid},则有mil=(μl-σl)+2

21112 优化K值的准则函数

定义3 类际离散度。

令K={X,R}为空间聚类的聚类空间。其中:X={x1,

x2,…,xn},假设n个空间对象被聚类为k个簇,定义类际离散

度为所有聚类中心到全域中心的距离之和,即L=6|mi-m|。

i=1

k

具体算法的实例分析如下:设N为R_Link树某节点当前拥有的子节点个数,m与M分别为R_Link树中每个节点能容纳的实体最小与最大个数。

输入:N个d维待分类数据{X1,X2,…,Xn}。其中Xi=

{Xi1,…,Xid};待分类的簇数为K。

其中:L为类际离散度;m为全部样本的均值;mi为簇Ci所含样本的均值;k为所要聚类的个数。

定义4 类内离散度。

令K={X,R}为空间聚类的聚类空间。其中:X={x1,

x2,…,xn},假设n个空间对象被聚类为k个簇,定义类内距离

为所有聚类簇内部距离的总和,即D=66|p-mi|。其中:D

i=1p∈ci

k

输出:K个簇,使得类际离散度最大,而类内离散度最小。

a)采用均值—标准差选择K个初始聚类中心{c1,c2,…,

ck}。其中:K的取值为[N/M]~[N/m],初值为[N/M];cj={cj1,cj2,…,cjd}。

为类内离散度;p为任一空间对象,即样本。

定义5 距离准则函数。

令K={X,R}为空间聚类的聚类空间。其中:X={x1,x2,

xn},假设n个空间对象被聚类为k个簇,定义距离准则函数为

b)根据欧氏距离公式,计算每个数据到各簇的距离,将各

数据划分到具有最小距离的簇中。其中距离计算公式为

d(xi,mj)=

l=1

类内离散度与类际离散度之商:

F(s,k)=D/L=6|mi-m|/(66|p-mi|)

i=1

i=1p∈ci

k

k

6(Xil-mjl)2;i=1,…,N;j=1,…,k

d

其中:d(xi,mj)为第i个矢量数据到第j个聚类的距离。c)根据分配的结果更新各聚类中心。

d)重复步骤b)和c),直到聚类结果不变。

其中:F(s,k)为距离准则函数。当距离准则函数F(s,k)达到

第7期

k

赵 伟,等:改进K2means的空间聚类算法

k

・19   97・

e)计算类际离散度L=6|mi-m|、类内离散度D=66

i=1

ki=1p∈ci

点越紧凑,聚类性能越高的特点,提出了基于空间聚类的四叉树与R2link树的混合结构,以提高查找、插入、删除的效率。用四叉树将整个索引空间划分成多级子索引空间,用R2link树索引每级的每个子空间。采用K2means算法来构造R2link树,并通过距离准则函数优化K值,使得R2link树各子节点紧凑、聚类性能高,达到了提高R2link树查询效率的目的。

在今后的研究工作中,笔者将仍然以索引结构为重点,可以选择下列问题为研究方向:

a)高维(k>20)数据对象的索引结构。

b)大数据量空间物体的存储研究,怎样在传递数据时减

i=1p∈ci

|p-mi|及计算距离准则函数F(S,K)=L/D=(66|p-mi|)/6|mi-m|。

i=1k

重复上述步骤,直到K值大于或等于[N/m]。

f)选择使距离准则函数值最小的k值作为划分聚类的个数,将空间对象按上述步骤b)~e)分配到相应的聚类。

 实验结果与性能分析

为了便于性能评价,在实验时选定三个参考对象,即R树、R2link树和改进的R2link树。其测试环境为WindowsXP操作系统,CPU为赛扬IV1.7GHz,内存256MB,磁盘盘页大小1024Byte,采用随机数据进行性能测试。

本文进行如下两个实验:a)将R树、R2link树与改进后的R2link树在查询时间效率上作比较。

以深度为2的四叉树为例,当用于查询的实验数据增加时,R树、R2link树与改进后的R2link树需要的页面数都在不断增加,如表1所示。本文给出了实验结果的图像描述,如图

4所示。从图4可以看出,在具有相同查询数据的条件下,改

少磁盘访问开销。

c)空间查询方法与传统SQL语言的结合。

d)空间索引的分布化或并行化。表1 不同树型结构的页面占用表算法R2树R2link树

08580205

数据量5000100001500020000250003000018016010565

243218168125

265237189166

281255222182

317263238195

377285257211

改进的R2link树

Level2Level3

表2 不同树型结构的空间占用表

算法R2树R2link树

032323334

进后的R2link树在查询上占用的页面总数要优于R树与

R2link树;当树的深度增加时,Leveli=3,4,5,…,k时,结果也

数据量

5000100001500020000250003000032.533.736.239.5

3334.13741

33.233.73539.2

32.83335.534.5

32.633.235.333.7

33.533.83533.9

是一致的。由于改进后的R2link树在查询相同数量的数据时占用的页面数要少于R树,查询速度要优于R树与R2link树。

b)将R树、R2link树和改进后的R2link树进行空间性能的比较。

本文仍然采用相同的随机数据进行空间性能测试,如表2所示。从图5中可以看出,当测试的随机数数目相同时,无论改进后的R2link树Leveli中i取何值,占用的页面数都要多于

R树与R2link树。改进后的R2link树的存储空间开销与四叉

改进的

R2link树

Level2Level3

树的深度成正比,一般比R树、R2link树要大,但索引目标数越多时,它们的存储开销越接近。因此,这个方法比较适合于海量数据。

就插入、删除、查找效率而言,由于改进后的R2link树采用四叉树对整个索引空间进行了划分,且四叉树节点所对应的

R2link是基于空间聚类所构造的,使R2link各子节点紧凑、其

参考文献:

[1]陈述彭,鲁学军,周成虎.地理信息系统导论[M].北京:科学技术

出版社,2001.

[2]KIMM,EOS.Efficientindexingofmovingobjectsusingtime2based

partitioningwithR2tree[C]//ProcofInternationalConferenceonComputationalScience.2005:5682575.[3]

KANUNGOT,MOUNTDM,NETANYAHUNS,etal.AnefficientK2meansclusteringalgorithm:analysisandimplementation[J].IEEETransonPatternAnalysisandMachineIntelligence,2002,24(7):8812892.

[4]周水庚,周傲英,曹晶,等.一种基于密度的快速聚类算法[J].计

聚类性能更高。其查询、插入、删除操作在一棵矮的具有高聚类性的R2link树上进行,不再针对整个索引空间,而被限定在某些局部区域,因此其插入、删除、查询性能优于R2link树。

 结束语

本文针对R2link树允许索引空间重叠、多路查询且各子节

(上接第1994页)[3]

ISLERV,LAURWH,GREENM.Real2timemulti2resolutionmode2lingforcomplexvirtualenvironments[C]//ProcofACMSymposiumonVirtualRealitySoftwareandTechnology.HongKong:ACMPress,1996:11219.

[4]GARLANDM,HECKBERTPS.Surfacesimplificationusingquadric

errormetrics[J].ComputerGraphics,1997,31(3):2092216.[5]周昆,潘志庚,石教英.基于三角形折叠的网格简化算法[J].计算

算机研究与发展,2002,37(11):128721292.

[6]FARKASL.Anthropometricfacialproportionsinmedicine[M].[S.

l.]:ThomasBooks,1987.

[7]HOPPEH,DeROSET,DUCHAMPT,etal.Meshoptimization[C]//

ProcoftheSIGGRAPH’93.1993.

[8]CIGNONIP,MONTANIC,SCOPIGNORA.Comparisonofmeshsim2

plificationalgorithm[J].Computer&Graphics,1998,22(1):37254.

[9]陶志良,潘志庚,石教英.支持快速恢复的可逆递进网格及其生成

机学报,1998,21(6):5062513.方法[J].软件学报,1999,10(5):5032507.

因篇幅问题不能全部显示,请点此查看更多更全内容