关于K均值聚类算法的综述及改进分析

关于K均值聚类算法的综述及改进分析  

2012-11-26 22:12:52|  分类: 默认分类|举报|字号 订阅

摘要摘要摘要摘要:K-means聚类算法是空间聚类领域的重要算法。本文在介绍了空间聚类规则的基础之上,同时叙述了经典的K-means算法,并总结了一些针对K-means算法的相关改进。

引言:    聚类算法是我们在模式识别中学到的知识,而空间聚类分析方法是空间数据挖掘理论中一个重要的领域,是从海量数据中发现知识的一个重要手段。K-means算法是空间聚类算法中应用非常广泛的算法,同时它也在聚类分析中起着重要作用。日益丰富的空间和非空间数据收集存储于空间数据库中,随着空间数据的不断膨胀,海量的空间数据的大小、复杂性都在快速增长,远远超出了人们的解译能力,从这些空间数据中发现邻域知识迫切需求产生一个多学科、多邻域综合交叉的新兴研究邻域,空间数据挖掘技术应运而生。

空间聚类空间聚类空间聚类空间聚类::::    空间聚类是空间数据挖掘的一个重要组成部分。作为数据挖掘的一个功能,空间聚类可以作为一个单独的工具用于获取数据的分布情况,观察每个聚类的特征,关注一个特定的聚类集合以深入分析。空间聚类也可以作为其它算法的预处理步骤,比如分类和特征描述,这些算法将在已发现的聚类上运行。

空间聚类规则是把特征相近的空间实体数据划分到不同的组中,组间的差别尽可能大,组内的差别尽可能小。空间聚类规则与分类规则不同,它不顾及已知的类标记,在聚类前并不知道将要划分成几类和什么样的类别,也不知道根据哪些空间区分规则来定义类。 因而,在聚类中没有训练或测试数据的概念,这就是将聚类称为是无指导学习(unsupervised learning)的原因

在多维空间属性中,框定聚类问题是很方便的。给定m个变量描述的n个数据对象,每个对象可以表示为m维空间中的一个点,这时聚类可以简化为从一组非均匀分布点中确定高密度的点群。在多维空间中搜索潜在的群组则需要首先选择合理的相似性标准。

已经提出的空间聚类的方法很多,目前,主要分为以下4种主要的聚类分析方法: 

①基于划分的方法 包括K—平均法、K—中心点法和EM聚类法。它们都是采用一种迭代的重定位技术,尝试通过对象在划分间移动来改进聚类效果。由于这类方法适用于发现大小相近的球状簇,

②基于层次的方法 此法只是对对象集合进行分解。根据层次的分解方式,这类方法可分为凝聚和分裂两种, Birch, Cure和Chameleon是上述方法的改进。

③基于密度的方法 对给定类中的每个数据点,在一个给定范围的区域中必须包含超过某个阈值的数据点,才继续聚类。它可以用来发现任意形状的簇,过滤“噪声”。代表性的方法有:DBscan,Optics和Denclue。

④基于栅格的方法 把对象空间划为有限的数据单元,形成一个网格结构。该方法处理速度快,处理时间独立于数据对象的数目。常用的方法有STING、WaveCluster以及CLIQUE等。 在这些方法当中,K-means(k—均值)算法是一种应用十分广泛的聚类分析方法。

经典的经典的经典的经典的KKKK----MeansMeansMeansMeans算法算法算法算法    k-means 算法接受输入量 k ;然后将n个数据对象划分为 k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算的。 

大体上说,k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k 个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数. k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。

下面详细地介绍K-means聚类问题,假设有一组N个数据的集合X={x1,x2,x3,…,xn}待聚类。K均值值聚类问题是要找到X的一个划分Pk={C1,C2,C3,…,Ck},使目标函数f(Pk)=1(,)iikiiixcdxm=∈∑∑最小。其中,mi=1/ni,iiixcx∈∑表示第i个簇中心位置,i=1,…,k;ni是簇Ci中数据项的个数;(,)iidxm表示xi到mi的距离。通常的空间聚类算法是建立在各种距离基础上的,如欧几里得距离、曼哈顿距离和明考斯距离等。其中,最常用的是欧几里得距离。

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

方法: 1) 任意选择K个对象作为初始的簇中心; 2) 将所有对象划分到相应的簇中; 3) 计算每个簇中对象的平均值,将所有对象重新赋给类似的簇; 4) 重复操作; 5) 直到不再发生变化。 K-means方法的缺陷在于它生成硬性划分的聚类,即每个数据点唯一地分配给一个且仅一个聚类。由于事先不知道实际的聚类情况,因此这可能是一中严重的局限。同时,K-means算法很容易陷入局部极小值从而无法获取全局最优解,在大矢量空间空间搜索中性能下降。同时,K-means法对于孤立和异常数据敏感,并对非球型簇可能失效。

改进的改进的改进的改进的KKKK----meansmeansmeansmeans算法算法算法算法    k-means算法中急需解决的问题主要有三个: 1)在k-means算法中,k是事先给定的,这个k值的选定是很难估计的。很多时候,我们事先并不知道给定的数据集应分成多少类最合适,这也是k-means算法的一个不足。有的算法是通过类的自动合并和分裂,得到较为合理的类型数目k,例如ISODALA算法。关于k-means算法中聚类数目k值的确定,有些根据方差分析理论,应用混合F统计量来确定最佳分类数,并应用了模糊划分墒来验证最佳分类数的正确性。

你可能感兴趣的:(算法)