基于距离权重的全局k-均值聚类算法的制作方法

文档序号:6602950阅读:200来源:国知局
专利名称:基于距离权重的全局k-均值聚类算法的制作方法
技术领域
本发明涉及一种聚类算法。特别是涉及一种在不影响聚类效果的基础上缩短其聚类所需时间,选择全局最优解的基于距离权重的全局k-均值聚类算法。

背景技术
聚类方法是将物理或抽象对象的集合组成为由类似的对象组成的多个类的过程被称为聚类。由聚类所组成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此类似,与其他簇中的对象相异。在许多应用中,可以将一些簇中的数据对象作为一个整体来对待。
聚类,就是将数据划分为若干个“簇”,使“簇”之间的距离尽可能的大,“簇”之内的距离尽可能的小。有几种关于簇的定义1,一些相似成员的集合,不同簇中的成员是不相似的。2,簇中两点之间的距离要小于簇中的一点与簇外任一点的距离。聚类不同与分类的基本特征是簇的(最优)数目是不知道的(也许能解决这个问题);关于每个簇可能没有任何先验知识(大部分情况下没有先验知识);聚类结果是动态的。
数据挖掘中聚类算法的应用很广泛。在商务上,聚类能帮助市场分析人员从客户基本库中发现不同的客户群,并且用不同的购买模式来刻画不同的消费群体的特征。在生物学上,聚类能用于帮助推导植物和动物的种类,基因和蛋白质的分类,获得对种群中固定结构的认识。聚类在地球观测数据中相似地区的确定,根据房屋的类型、价值和位置对一个城市中房屋的分类发挥作用。聚类也能用来对web上的文档进行分类,以发现有用的信息。聚类分析能作为一种独立的工具来获得数据分布的情况,观察每个簇的特点,并对某些特定的节点进一步分析。此外,聚类还可以作为其他方法的预处理步骤。
数据聚类正在蓬勃的发展,有贡献的领域包括数据挖掘,统计学,机器学习,空间数据库技术,生物学以及市场营销。现在数据聚类分析已经成为一个非常活跃的研究课题。
作为统计学的一个分支,聚类分析已经被广泛地研究若干年,主要集中在基于距离的聚类分析。基于k-means(k-平均值)、k-medoids(k-中心点)和其他一些的聚类分析工具已经被加入到许多统计分析的软件中,例如S-Plus、SPSS和SAS。
在机器学习领域,聚类分析是无指导学习的例子。与分类不同,聚类不需要依赖事先定义的类和带符号的训练实践。所以聚类分析是观察式学习,而不是示例式学习。
在数据挖掘领域,研究工作已经集中在为大型数据库的有效和实际的聚类分析寻找适当的方法。活跃的研究课题集中在聚类方法的可伸缩性,方法对聚类复杂形状和类型的数据的有效性,高维聚类分析技术,以及针对大型数据库中混合数值和分类数据的聚类方法。
由于研究的需要,现在将重点放在数据挖掘中聚类方法的应用上。数据挖掘中对聚类的典型要求如下 (1)可伸缩性。一股的聚类算法使用鱼规模小于200的数据集合上,而现在很多大型数据库的数据量达到百万个,这就要求聚类有好的可伸缩性。
(2)处理不同类型属性的能力。应用的多元化,可能要求一个聚类能处理多种数据类型,像二元类型、分类/标称类型、序数型数据,或者这些类型的混合。
(3)发现任意形状的聚类。基于距离的聚类算法趋向于发现相近尺度和密度的球状簇。但一个簇的形状是任意的,所以就要求聚类能发现这些被忽略的聚类。
(4)用于决定输入参数的领域知识的最小化。由于聚类结果对输入参数的要求很敏感,但参数通常很难确定,特别是对于高维对象的数据来说。所以输入参数的质量直接影聚类的结果,这就加重了用户的负担。
(5)处理噪声数据的能力。绝大多数数据集中存在很多孤立点、空缺、未知数据或错误数据。一些聚类算法对于这样的数据敏感,导致低质量聚类结果。
(6)对输入数据的顺序不敏感。
(7)高维性。一个数据库或是数据仓库可能只包含若干维,很多聚类算法只涉及两到三维。人类对于三维以内的数据有判断性,高于三维的数据聚类的挑战性很高,数据可能很稀疏,也可能高度偏斜。
(8)基于约束的聚类。现实世界可能要在约束条件下进行聚类,这就要求既要满足客户特定的约束,又具有良好聚类特性的数据分组。
(9)可理解行和可用性。用户希望聚类结果是可解释的,可理解的,并且是可用的。也就是,聚类与最后的应用相联系。应用目标对聚类方法的影响也是一个重要的课题。
1、k-均值聚类 k-均值聚类算法是一个基于划分的聚类方法,采用聚类误差平方和函数E作为聚类准则函数,其中, xij是第i类第j个样本,mi是第i类的聚类中心或称质心,ni是第i类样本个数。k-均值聚类算法实质就是通过反复迭代寻找k个最佳的聚类中心,将全体n个样本点分配到离它最近的聚类中心,使聚类误差平方和E最小.具体过程如下 Step1初始化 随机指定k个聚类中心(m1,m2,……,mk)。
Step2分配xi 对每一个样本xi,找到离它最近的聚类中心,并将其分配到该类。
Step3修正簇中心 重新计算各簇新中心为以下值, 其中Ni是第i簇当前样本数。
Step4计算偏差 Step5收敛判断 如果E值收敛,则return(m1,m2,...,mk),算法终止;否则,转Step2。
然而k-均值聚类算法对于初始点的选择过于敏感,而且最终的mi依赖于初始的mi。同时k-均值聚类算法仅仅是一个局部搜索过程,因此最终只能得到局部的最优解而不是全局的最优解。
2、全局k-均值聚类算法 全局k-均值算法将k个簇的聚类问题转化为一系列的子聚类问题,通过一系列的局域搜索来实现k个簇的聚类问题,得到k簇聚类问题的最佳解答。具体做法是从k=1开始,实现一个簇的聚类问题,得到一个簇的最佳质心。在此基础上,寻找k=2的最佳聚类结果,方式是默认一个簇聚类的最佳质心是k=2两簇聚类问题中其中一个簇的最佳初始中心,并通过以每一个样本作为第二个簇的初始中心运行k-均值聚类算法,以聚类效果最佳(即聚类误差平方和最小)的作为两个簇聚类的最优结果,得到两类聚类问题的最佳初始中心和最佳质心;然后再解决三个簇的聚类问题,直到实现k个簇的聚类问题。该过程默认一条原则k-1簇聚类问题的最佳质心是k簇聚类问题中前k-1个簇的最佳初始中心;然后通过反复运行k-均值聚类算法总样本个数次来选择第k个簇的最佳初始中心,得到k簇聚类问题的最佳聚类结果。算法描述如下 Step1初始化 计算所有样本数据的均值作为第一个簇的中心, 设置q等于1。
Step2终止条件 q=q+1,若q>k,算法终止。
Step3寻找下一个簇中心 以m1,m2,...,mq-1为前q-1个簇中心,分别以数据集中每个样本xi作为第q个簇的初始中心,执行k-均值聚类算法,选择使E最小的那个样本xi作为第q个簇的最佳初始中心,得到各簇新质心y1,y2,...,yq。
Step4令mi=yi,i=1,2,...,q,转Step2。
全局k-均值聚类算法尽管可以找到全局的最优解,但是也存在一个问题,那就是算法的时间复杂度太高,每一次都要对所有的节点运行一次k-均值聚类算法,因此时间复杂度很高,对于拥有大量数据的应用,此算法运行时间太长。
4、快速全局k-均值聚类算法 全局k-均值聚类算法计算量很大,不适用于大规模数据的聚类,快速全局k-均值聚类算法是Likas等人对其全局k-均值聚类算法的改进,改进之处在于对于下一个簇初始中心的选择,快速全局k-均值聚类算法引入了bn的计算,选择使bn最大的样本点xn作为下一个簇的初始中心,从而降低了计算量。bn的定义如下 其中,dk-1j表示xj与距离它最近的簇中心的距离,即xj距它所在簇中心的距离。
该改进避免了选择下一个最佳簇中心时将每一个样本作为候选点执行一次k-均值聚类算法的计算量。实验证明快速全局k-均值聚类算法在不影响聚类效果的情况下缩短了全局k-均值聚类算法的执行时间。
总之,k-均值聚类算法由于不能找到全局最优解,而只能找到局部最优解,并且其最终的结果依赖于初始点的选择,因此,在此基础上,提出了全局k-均值聚类算法,但由于其时间开销特别大,尽管可以找到全局最优解,但不适合拥有大量数据的情况,因此在其基础上出现了快速全局k-均值聚类算法,此算法可以提高其聚类速率,其引入了bn的计算,降低了计算量,但每一次循环,bn的计算仍然需要对每一个样本点,计算其和其他所有样本点的关系,每一次循环需要n2次计算。


发明内容
本发明所要解决的技术问题是,提供一种能够可以有效的对数据分类,再降低了聚类所需要的时间,选择全局最优解的基于距离权重的全局k-均值聚类算法。
本发明所采用的技术方案是一种基于距离权重的全局k-均值聚类算法,包括如下步骤 1)计算所有样本点的聚集权重信息 聚集权重信息计算公式如下所示, 其中n表示样本点数目,xi表示第i个样本,xj表示第j个样本,d(xi,xj)表示i、j两个样本点的距离。
2)计算所有样本数据的均值作为第一个簇的聚类中心 并设置q=1;其中,q代表的是当前已有的聚类中心点的数目。
3)判断是否满足终止条件,即判断q+1是否大于k,k=1、2…,若q>k,算法终止,否则,进入下一步骤。
4)寻找下一个簇的最佳初始中心 下一个簇初始中心的选取,首先通过以下公式计算每一个目标节点的权重信息, 其中wi表示的是第i个节点的聚集权重,xi表示第i个样本,mj表示第j个聚类中心,q代表的是当前已有的聚类中心点的数目,d(xi,mj)表示的是样本点i和第j个聚类中心点的距离,选择gi最大的节点xi,作为下一个最佳的簇初始中心, 并令q=q+1; 5)通过k-均值聚类算法计算此时的聚类中心 其中前q-1个簇的聚类中心是前q-1个最佳初始中心,第q个初始中心是由上步计算得到的xi节点,则可得到q个最佳初始中心,执行k-均值聚类算法得到最终的q个聚类中心,并然后返回第3)步骤。
步骤1)所述的聚集权重信息计算公式用于计算节点的聚集程度。
步骤4所述的寻找下一个簇的最佳初始中心,选择目标是距离当前已有的中心点距离远,但又是节点密度大的节点作为下一个初始中心点。
本发明的基于距离权重的全局k-均值聚类算法,可以有效的对数据分类,通过对算法进行分析可知,相比快速全局k-均值聚类算法,本本发明所需要的时间进一步降低,因此本发明在不改变分类结果的情况下,降低了聚类所需要的时间。



图1是本发明的算法流程图; 图2是试验原始数据信息,坐标为400×400; 图3是聚类结果信息,坐标为400*400,其中k=3; 图4是图3分成了三个区域。

具体实施例方式 下面结合实施例和附图对本发明的基于距离权重的全局k-均值聚类算法做出详细说明。
考虑人类智能对样本点做分类的过程,我们可以看到,我们可以很轻易的看出一点简单的分类,把那些聚集在一起的样本点作为一类。我们在分类过程中主要考虑一下两点,第一寻找样本点的聚集区域,第二寻找下一个距离当前区域一定距离的另一个区域。我们首先寻找样本点周围最密集的样本作为初始的点,然后对下一个初始样本点的选择,我们将选择距离当前中心比较远但又样本周围密集的样本点为我们的选择目标,因此,我们将会根据这个思想来设计我们的算法。
我们首先引入两个概念。
聚集权重wi其表示的是第i个样本周围的样本密集程度,其周围的样本点越密集,其对应的权重也就越高。我们用一下公式表示其权重信息, 其中n表示样本点数目,xi表示第i个样本,xj表示第j个样本。d(xi,xj)表示i,j两个样本点的距离。
我们通过wi就可以把每一个样本点周围的密集程度表示出来。我们用样本点与其他样本点之间距离的平方和的倒数表示。wi越大,则表示其所在区域越密集。
目标节点权重gi其表示的是根据当前的中心点,如何选择下一个簇的初始中心点。我们的选择目标是距离当前已有的中心点距离远,但又是节点密度大的节点作为下一个初始中心点。我们通过下面的公式表示其权重信息, 其中wi表示的是第i个节点的聚集权重,q代表的是当前已有的聚类中心点的数目,d(xi,mj)表示的是样本点i和第j个中心点的距离。
如图1所示,本发明的基于距离权重的全局k-均值聚类算法,包括如下步骤 1)计算所有样本点的聚集权重信息 聚集权重信息计算公式如下所示, 其中n表示样本点数目,xi表示第i个样本,xj表示第j个样本,d(xi,xj)表示i、j两个样本点的距离,所述的聚集权重信息计算公式用于计算节点的聚集程度。
2)计算所有样本数据的均值作为第一个簇的聚类中心 并设置q=1;其中,q代表的是当前已有的聚类中心点的数目。
3)判断是否满足终止条件,即判断q+1是否大于k,k=1、2…,若q>k,算法终止,否则,进入下一步骤。
4)寻找下一个簇的最佳初始中心 所述的寻找下一个簇的最佳初始中心,选择目标是距离当前已有的中心点距离远,但又是节点密度大的节点作为下一个初始中心点。
下一个簇初始中心的选取,是通过我们以上提及的目标节点权重的概念,我们首先通过以下公式计算每一个目标节点的权重信息, 其中wi表示的是第i个节点的聚集权重,xi表示第i个样本,mj表示第j个聚类中心,q代表的是当前已有的聚类中心点的数目,d(xi,mj)表示的是样本点i和第j个聚类中心点的距离,选择gi最大的节点xi,作为下一个最佳的簇初始中心。
并令q=q+1; 5)通过k-均值聚类算法计算此时的聚类中心 其中前q-1个簇的聚类中心是前q-1个最佳初始中心,第q个初始中心是由上步计算得到的xi节点,则可得到q个最佳初始中心,执行k-均值聚类算法得到最终的q个聚类中心,并然后返回第3步骤。
下面给出一个实例 实验数据共有600个样本点,实验原始数据信息如附图2所示,我们观察原始数据大概共有三个聚集区域,本实验将验证算法的有效性,即可以正确的划分出结果。本实验也令k=3。
Step1计算所有样本点的wi,
Step2计算所有样本数据的均值作为第一个簇的聚类中心

初始化q=1。
Step3若q+1>3,则算法终止。
Step4寻找下一个簇的最佳初始中心,计算每一个目标节点的权重信息,通过以下公式计算,

其中wi表示的是第i个节点的聚集权重,xi表示第i个样本,mj表示第j个聚类中心,q代表的是当前已有的聚类中心点的数目,d(xi,mj)表示的是样本点i和第j个聚类中心点的距离,选择gi最大的节点xi,作为下一个最佳的簇初始中心。
令q=q+1。
Step5通过k-均值聚类算法计算此时的聚类中心。
其中前q-1个簇的聚类中心是前q-1个最佳初始中心,第q个初始中心是由上步计算得到的xi节点,则可得到q个最佳初始中心,执行k-均值聚类算法得到最终的q个聚类中心。转Step3。
由实验结果可知,本发明的基于距离权重的全局k-均值聚类算法,可以有效的对数据分类,通过对算法进行分析可知,相比快速全局k-均值聚类算法,本算法所需要的时间进一步降低,因此本算法在不改变分类结果的情况下,降低了聚类所需要的时间。
权利要求
1.一种基于距离权重的全局k-均值聚类算法,其特征在于包括如下步骤
1)计算所有样本点的聚集权重信息
聚集权重信息计算公式如下所示,
其中n表示样本点数目,xi表示第i个样本,xj表示第j个样本,d(xi,xj)表示i、j两个样本点的距离。
2)计算所有样本数据的均值作为第一个簇的聚类中心
并设置q=1;其中,q代表的是当前已有的聚类中心点的数目。
3)判断是否满足终止条件,即判断q+1是否大于k,k=1、2…,若q>k,算法终止,否则,进入下一步骤。
4)寻找下一个簇的最佳初始中心
下一个簇初始中心的选取,首先通过以下公式计算每一个目标节点的权重信息,
其中wi表示的是第i个节点的聚集权重,xi表示第i个样本,mj表示第j个聚类中心,q代表的是当前已有的聚类中心点的数目,d(xi,mj)表示的是样本点i和第j个聚类中心点的距离,选择gi最大的节点xi,作为下一个最佳的簇初始中心,
并令q=q+1;
5)通过k-均值聚类算法计算此时的聚类中心
其中前q-1个簇的聚类中心是前q-1个最佳初始中心,第q个初始中心是由上步计算得到的xi节点,则可得到q个最佳初始中心,执行k-均值聚类算法得到最终的q个聚类中心,并然后返回第3)步骤。
2.根据权利要求1所述的基于距离权重的全局k-均值聚类算法,其特征在于,步骤1)所述的聚集权重信息计算公式用于计算节点的聚集程度。
3.根据权利要求1所述的基于距离权重的全局k-均值聚类算法,其特征在于,步骤4所述的寻找下一个簇的最佳初始中心,选择目标是距离当前已有的中心点距离远,但又是节点密度大的节点作为下一个初始中心点。
全文摘要
本发明公开一种基于距离权重的全局k-均值聚类算法,有如下步骤1)计算所有样本点的聚集权重信息;2)计算所有样本数据的均值作为第一个簇的聚类中心;3)判断是否满足终止条件,即判断q+1是否大于k,k=1、2…,若q>k,算法终止,否则,进入下一步骤;寻找下一个簇的最佳初始中心;通过k-均值聚类算法计算此时的聚类中心。本发明可以有效的对数据分类,通过对算法进行分析可知,相比快速全局k-均值聚类算法,本本发明所需要的时间进一步降低,因此本发明在不改变分类结果的情况下,降低了聚类所需要的时间。
文档编号G06F17/30GK101814063SQ201010181080
公开日2010年8月25日 申请日期2010年5月24日 优先权日2010年5月24日
发明者石红, 刘春洁 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1