一种基于K-means的自适应聚类算法的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种基于K-means的自适应聚类算法的研究
【摘要】聚类(Clustering)是数据挖掘中的一种主要技术,K-means算法是一种重要的经典的划分方法,但该算法在K值的确定、质心的选取、对维数的依赖上存在问题,本文提出了一种改进的自适应算法,用于解决K值的确定、质心的选取等问题,聚类效果较好。
【关键词】聚类;K-means;自适应;算法
0.引言
聚类(Clustering)是数据挖掘中的一种主要技术,是按照一定要求和规律对一组个体进行区分和分类的过程,主要目的是使的属于同一类别的个体之间的距离尽可能的小,而不同类别上的个体间的距离尽可能的大,聚类属于无监督分类的范畴。划分聚类(Partitioning Methods)是聚类中的重要方法,指对于一个给定包含n个对象或元组的数据库,通过基于划分的方法由用户给定构建数据的k个划分,每个划分表示一个簇,并且k<=n。
1.K-means算法
K-means算法是重要的划分方法,由J.B.MacQueen提出,具有广泛的影响力。其基本原理是,首先指定聚类数k,从含有n个对象的数据集合中随机地选择k个对象作为一个簇的初始平均值或中心。计算剩余的各个对象到这些簇中心的距离,然后根据其与各个簇中心的距离,将它赋给最近的簇。然后重新计算每个簇的平均值作为该簇新的聚类中心,如果相邻的聚类中心没有任何变化,则样本调整结束,聚类准则函数E己经收敛。准则函数的作用是使生成的结果簇尽可能地紧凑和独立。
虽然K-means算法应用在很多方面,但仍然存在缺陷:(1)在K-means算法中k值必须事先给定,无法确定这个K值。(2)K-means聚类算法对初始质心严重依赖,初始聚类中心直接影响着聚类结果,随机选取不同的初始聚类中心点,产生的聚类结果往往都不相同。(3)K-means算法的另一个缺点是通常涉及到所有的变量且认为这些变量对距离影响的程度是等同的,容易引发“维数陷阱”。
2.改进的算法AK-menas(Adativek-means)
2.1质心的确定
为弥补k-means算法的缺陷,本文在k-means算法的基础上先提出二分k均值算法,即在算法初始时选出距离最远的两个对象,作为初始中心,形成两个初始簇,从这些簇中选取一个继续分裂,如此下去,直到产生k个簇,这种方法使得二分k-means不太受初始化的困扰,因为它执行每步只有两个质心。这样就可以保证在后续的处理中同一类内的对象有极大的相似性,而不同类之间有极低的
相似性。
2.2聚类个数k值的确定
借鉴最大、最小距离法的基本思想,来确定后续聚类的中心,同时在聚类过程中引入Davies—BouldinIndex指标来确定聚类个数k。
Davies-BouldinIndex又称为DBI指标,一种非模糊型的集群评估指标(clusteringvalidityIndex),主要是利用几何原理进行运算,分别以聚类间离散程度与位于同一类内的数据对象的紧密程度作为依据,当类内各数据对象间距离越小而类间距离越大,DBI值也就越小,就代表各聚类内的数据对象越紧密且聚类间的差异大,表明此聚类数目下的聚类结果最佳。
具体算法步骤如下:
(l)通过3.1节的思想确定两个最佳的初始聚类中心cl,c2。
(2)查找新的聚类中心,分别计算数据集口中剩余的数据对象到cl,c2的距离d(c1,j)和d(c2,j)。
(3)D=max{min(d(c1,j),d(c2,j))},j=l,2,……,n。得到xj,利用DBI 公式判断是否是要找的最佳聚类中心,如何判断在下面介绍:
好的聚类结果应该是同一类间的各数据对象间相似度大,而不同类之间的相似度小,DBI能够满足这个条件,即分子越小,分母越大时,DBI的值越小,则代表各聚类内数据相似度大而类间的相似度小,从这个值可以确定通过D=max{min(d(c1,j),d(c2,j)},查找到的xj是否是最佳中心,既而确定最佳的聚类数目。
找到新聚类中心xj,进行聚类,重新计算聚类的中心。对目前形成的k个聚类,计算其DBI和前一次计算的DBI进行比较,如果DBInew (4)如果找到的数据对象是中心,则计算D=max{min(d(c1,j),d(c2,j),d(c3,j))},j’=1,2,…,n。存在这样的数据对象,转到(3)。依次类推直到跳出循环。 从确定的过程可以看出,减少了人为的干预,避免了由于参数设定不当对聚类结果造成的影响。 2.3对改进k-means算法的描述 结合以上分析,给出改进的k-means算法流程如下: 输入:数据集O 输出:聚类对象 l)扫描数据集0,计算出数据集中最远的两个对象:x1,x2。 2)将数据集剩下的数据对象分别计算到xl,x2的距离,将其划分到距离小的那个中心的类中,标记,同时记下最小的距离。 3)划分完成后,重新计算聚类中心,得到c1,c2。 4)借鉴最大、最小距离法的基本思想,max{min(d(c1,j),d(c2,j))},查找到的xj。 5)转入2),对整个数据集进行重新划分。 6)根据DBI公式,计算DBInew并比较,和上次计算出来的DBIold进行比较,如果DBInew 7)依次类推,直到无法找到满足条件的新的聚类中心,最终输出聚类结果。 2.4仿真实验及分析 为了更加直观的验证本文AK-means算法的有效性,对于同一组数据分别用经典的k-means算法和本文改进后的算法分别进行5次聚类实验,取结果的平均值。其中实验中用到的数据是随机生成的,数目为100000个,数据维度为2维,数据值在0-260之间。结果见下表: 下图分别是k-means聚类算法和AK-means聚类算法的同一组数据的两次聚类效果图。 其中AK-means聚类算法两次的聚类效果都如图(a)所示,(b)和(c)是两次k-means聚类的结果,可以明显看出AK-means聚类算法由于初始聚类中心的确定使得聚类效果稳定,视觉上更加符合人的视觉需求,聚类结果令人比较满意。 3.结语 通过提出改进的自适应算法,能有效的克服传统的K-means算法对于K值和质心确定的弊端,实验结果证明,该算法能对样本起到更好的凝聚作用。 【参考文献】 [1]陆微微,刘晶,一种提高K一近邻算法效率的新算法[J].计算机工程与应用,2008,44(4):163-165.