基于密度的最佳聚类数确定方法.

基于密度的最佳聚类数确定方法.
基于密度的最佳聚类数确定方法.

基于密度的最佳聚类数确定方法

[关键字]聚类评估,聚类数,聚类有效性指标

0 引言

聚类是数据挖掘研究中重要的分析手段,其目的是将数据集中对象聚集成类,使得同一类中的对象是相似的,而不同类中的对象是不同的。迄今研究者已经提出了为数众多的聚类算法,并已经在商务智能、图形分析、生物信息等领域得到了广泛应用。作为一种非监督学习的方法,对学习得到的聚类结果进行评估是非常有必要的。因为许多聚类算法需要用户给定数据集的聚类数量,而在实际应用中这通常是事先不知道的。确定数据集的聚类数问题目前仍是聚类分析研究中的基础性难题之一 [1][2]。

聚类评估用于评价聚类结果的质量,这被认为是影响聚类分析成功与否的重要因素之一[3]。它在聚类分析过程中的位置如图1所示。聚类评估的一些重要问题包括确定数据集的聚类趋势、确定正确的类个数、将聚类分析结果与已知的客观结果比较等,本文主要研究其中的最佳聚类数的确定。

通常最佳聚类数的确定是通过以下计算过程来确定的。在给定的数据集上,通过使用不同的输入参数(如聚类数)运行特定的聚类算法,对数据集进行不同的划分,计算每种划分的聚类有效性指标,最后比较各个指标值的大小或变化情况,符合预定条件的指标值所对应的算法参数被认为是最佳的聚类数 [4]。

迄今为止,已有各种类型的度量指标从不同角度来评估数据集划分的有效性,这些指标称为聚类有效性指标(Clustering Validation Indices)。一般地,用于评估聚类的各方面的评估度量指标可分成以下两类[5]。

1)外部指标(External index):指聚类分析的评价函数是针对基准问题的,其簇的个数及每个数据对象的正确分类均为已知。代表性外部指标有熵、纯度、F-measure等。

2)内部指标(Internal index):指数据集结构未知的情况下,聚类结果的评价只依靠数据集自身的特征和量值。在这种情况下,聚类分析的度量追求两个目标:类内紧密度和类间分离度。这也是本文的主要研究领域,代表性内部指标有DB,CH,XB,SD等。

从其他不同角度,聚类有效性指标又可分为分割指标与层次指标,模糊指标与非模糊指标,统计指标与几何指标。

用内部指标来评估聚类有效性,获取数据集最佳划分或最佳聚类数的过程一般分为以下4步[6]:

第一步:给出一系列用来对数据集进行聚类的聚类算法;

第二步:对于每一种聚类算法,分别使用不同的输入参数以获得不同的聚类结果;

第三步:对于第二步中得到的不同聚类结果,计算其内部指标并得到相应的取值;

第四步:根据内部指标所要求的规则选择最佳分割或最佳聚类数。

1 常用聚类有效性指标

1.1 Davies-Bouldin 指标(DB)[7]

DB指标首先计算每个类中各点与类中心的平均距离,然后以此计算每个类与其他各类的相似度,并取最大值作为该类的相似度,最后,DB指标由所有类的相似度平均得到。容易得出,DB越小表示类与类之间的相似度越低,从而对应越佳的聚类结果。

1.2 Calinski-Harabasz指标(CH)[8]

CH指标通过计算类中各点与类中心的距离平方和来度量类内的紧密度,通过计算各类中心点与数据集中心点距离平方和来度量数据集的分离度,CH指标由分离度与紧密度的比值得到。从而,CH越大代表着类自身越紧密,类与类之间越分散,即更优的聚类结果。

1.3 Xie-Beni指标(XB)[9]

XB指标使用最小的类与类中心距离平方来衡量类间分离度,使用类中各点与类中心的距离平方和来衡量类内紧密度。XB指标也是类内紧密度与类间分离度的比值。和CH指标一样,XB就是在类内紧密度与类间分离度之间寻找一个平衡点,使其达到最小,从而得到最优的聚类结果。

1.4 SD指标[10]

SD有效性指标定义为

SD指标通过计算类中对象的标准差来衡量类内紧密度,通过计算类与类之间的距离来衡量类间分离度。其中是加权项,可以平衡类内紧密度和类间分离度之间的相对重要性,在本文中,取值为。、分别是类与数据集的标准偏差。

2 基于密度的聚类有效性指标(Density Based Index)

由于对于一个特定的聚类算法,不同的输入参数会导致不同的聚类划分。而对某一个特定的数据集而言,只有一个划分结果是最优的。此处的最优划分是指,相比其他划分,它和数据集原本的真实划分是最接近的。

因此,本课题研究的目标是定义一个新的聚类有效性指标,用来评估不同聚类划分的质量。这个聚类有效性指标可以从数据集使用某一聚类算法得到的划分结果中,找出最符合真实情况的那一个划分,从而得到这一划分所需的输入参数,如聚类个数。

现有的聚类有效性指标大都是基于对象与中心之间的距离度量,使得其不能很好地捕捉类内部的对象分布情况,同时也忽略了类间的对象分布紧密程度。

由于聚类分析的目的是将数据集中对象聚集成类,使得同一类中的对象是相似的,而不同类中的对象是不同的。从数据几何分布的角度来看,聚类将使得同一类空间里的对象分布较为密集,而类与类之间的空间对象分布较为稀疏,即可理解为同一类中对象密度比类间对象密度更大。使用基于密度的方法来评估聚类结果的有效性,是和聚类分析的本质相符合的。

给定一个维数据集,为一个数据对象,为数据集中数据对象的个数。一个硬划分聚类算法将划分为个子集的集合,子集称为的类。本文中用表示数据集中心点,用表示类中心点,表示中对象个数,表示对象间距离。

定义1:类中心密度(cluster center density)

类中心密度是以类中心点为中心,给定半径范围,此类中所有到类中心点距离小于等于的对象个数。。

定义2:类半径(cluster radius)

类半径是类中所有对象到类中心的距离的平均值。

定义3:类间中位点(medium point between clusters)

类间中位点是在以两类中心的连线上的一个点,使得中位点到两类中心的距离的比值等于两类半径的比值。如图2所示,数据集中存在类、、三个类,其中类的半径是类、的一半,则类与类的中位点到类中心距离为到类中心距离的一半,而类与类的中位点到类中心距离与到类中心距离相等。

定义4:类边缘密度(cluster boundary density)

类边缘密度是以类中心点与数据集中某一类中心点的中位点(medium point)为中心,给定半径范围,与中所有到中位点距离小于等于的对象个数的均值。

在本文中,取值为。

定义5:基于密度有效性指标(Density Based Index, DBI)

3 实验结果

为了说明新指标DBI的效果,我们测试了DBI在各种各样的数据下的表现,现仅以较具代表性的5组来做一个说明,其中包括了3组生成数据和2组实际数据。3组生成数据由混合高斯分布生成,而另外2组实际数据来源于UCI数据库。这5组数据的特征如表1所示。

由于数据集Iris和Satimage的维数都大于3维,在文中无法展示其结构。而人工数据集DS1、DS2、DS3的分布如图3所示。从图中可以看出,DS1中存在5个分布较好的类和一些噪音,DS2中3个类之间存在着不均衡的分布,而DS3的5个类中存在着子簇群。

实验中,使用CLUTO工具对数据集进行聚类,其中数据集DS2使用了Chameleon算法,其余数据集使用了Kmeans算法。因为DS2中存在着不均衡分布,Kmeans算法无法得到合适的聚类结果。实验中设置最小聚类数为2,最大聚类数为9,包括了5个数据集的最佳聚类数。各指标对5个数据集所选择的最佳聚类数如表2所示。

从实验结果可以看出,CH指标对数据集DS2选择了错误的聚类数,DB和SD在数据集DS3下没能选择正确的聚类数。对实际数据Iris,只有新指标DBI选择了正确聚类数3,而对实际数据Satimage,所有的指标都没有选择正确的聚类数。在这组实验中,DBI的正确率最高,为80%,而其他4个指标中,最高为XB正确率60%,其他均只有40%。

4 结论与展望

现有的聚类算法通常都需要用户根据经验知识提供输入参数,如聚类数,但通常情况下这事先无法确定。使得在实际应用中,用户对于聚类分析的结果无法进行正确的选择。本文提出了一种新的确定最佳聚类数的有效性指标,该指标着重于分析簇的几何结构,从数据对象分布密度的角度来度量类内紧密度与类间分离度。该指标对噪声不敏感并且可以识别数据集中的子簇群,在实际数据和合成数据上的实验结果表明,新指标的性能优于广泛使用的其他指标,对于聚类分析的实际应用提供了一定的参考。

参考文献

[1] 陈黎飞,姜青山,王声瑞,基于层次划分的最佳聚类数确定方法,软件学报,(19):1, 2008, pp.62-72.

[2] 杨燕,靳蕃,K. Mohamed,聚类有效性评价综述,计算机应用研究,(25):6, 2008, pp.1630-1632.

[3]A. K. Jain and R. C. Dubes, Algorithms for clustering data. Upper Saddle River, NJ, USA: Prentice-Hall, Inc., 1988.

[4] 杨善林,李永森,胡笑旋,等,K-means算法中的k值优化问题研究,系

统工程理论与实践,2006(2):97-101.

[5] P.N. Tan, M. Steinbach, and V. Kumar, Introduction to Data Mining. USA: Addison-Wesley Longman, Inc., 2005.

[6] 周世兵,徐振源,唐旭清,新的K-均值算法最佳聚类数确定方法,计算机

工程与应用,46(16), 2010, pp.27-31.

[7] D. Davies and D. Bouldin, “A cluster separation measure,” IEEE PAMI, vol. 1, no. 2, pp. 224–227, 1979.

[8] T. Calinski and J. Harabasz, “A dendrite method for cluster analysis,” Comm. in Statistics, vol. 3, no. 1, pp. 1–27, 1974.

[9] X. L. Xie and G. Beni, “A validity measure for fuzzy clustering,” IEEE PAMI, vol. 13, no. 8, pp. 841–847, 1991.

[10] M. Halkidi, M. Vazirgiannis, and Y. Batistakis, “Quality scheme assessment in the clusteri ng process,” in PKDD, London, UK, 2000, pp. 265–276

作者简介

刘燕驰,男,江西吉安人,博士研究生,主要研究方向:数据挖掘,智能数据

分析。.

基于密度的最佳聚类数确定方法.

基于密度的最佳聚类数确定方法 [关键字]聚类评估,聚类数,聚类有效性指标 0 引言 聚类是数据挖掘研究中重要的分析手段,其目的是将数据集中对象聚集成类,使得同一类中的对象是相似的,而不同类中的对象是不同的。迄今研究者已经提出了为数众多的聚类算法,并已经在商务智能、图形分析、生物信息等领域得到了广泛应用。作为一种非监督学习的方法,对学习得到的聚类结果进行评估是非常有必要的。因为许多聚类算法需要用户给定数据集的聚类数量,而在实际应用中这通常是事先不知道的。确定数据集的聚类数问题目前仍是聚类分析研究中的基础性难题之一 [1][2]。 聚类评估用于评价聚类结果的质量,这被认为是影响聚类分析成功与否的重要因素之一[3]。它在聚类分析过程中的位置如图1所示。聚类评估的一些重要问题包括确定数据集的聚类趋势、确定正确的类个数、将聚类分析结果与已知的客观结果比较等,本文主要研究其中的最佳聚类数的确定。 通常最佳聚类数的确定是通过以下计算过程来确定的。在给定的数据集上,通过使用不同的输入参数(如聚类数)运行特定的聚类算法,对数据集进行不同的划分,计算每种划分的聚类有效性指标,最后比较各个指标值的大小或变化情况,符合预定条件的指标值所对应的算法参数被认为是最佳的聚类数 [4]。 迄今为止,已有各种类型的度量指标从不同角度来评估数据集划分的有效性,这些指标称为聚类有效性指标(Clustering Validation Indices)。一般地,用于评估聚类的各方面的评估度量指标可分成以下两类[5]。 1)外部指标(External index):指聚类分析的评价函数是针对基准问题的,其簇的个数及每个数据对象的正确分类均为已知。代表性外部指标有熵、纯度、F-measure等。 2)内部指标(Internal index):指数据集结构未知的情况下,聚类结果的评价只依靠数据集自身的特征和量值。在这种情况下,聚类分析的度量追求两个目标:类内紧密度和类间分离度。这也是本文的主要研究领域,代表性内部指标有DB,CH,XB,SD等。 从其他不同角度,聚类有效性指标又可分为分割指标与层次指标,模糊指标与非模糊指标,统计指标与几何指标。 用内部指标来评估聚类有效性,获取数据集最佳划分或最佳聚类数的过程一般分为以下4步[6]:

各种聚类算法及改进算法的研究

论文关键词:数据挖掘;聚类算法;聚类分析论文摘要:该文详细阐述了数据挖掘领域的常用聚类算法及改进算法,并比较分析了其优缺点,提出了数据挖掘对聚类的典型要求,指出各自的特点,以便于人们更快、更容易地选择一种聚类算法解决特定问题和对聚类算法作进一步的研究。并给出了相应的算法评价标准、改进建议和聚类分析研究的热点、难点。上述工作将为聚类分析和数据挖掘等研究提供有益的参考。 1 引言随着经济社会和科学技术的高速发展,各行各业积累的数据量急剧增长,如何从海量的数据中提取有用的信息成为当务之急。聚类是将数据划分成群组的过程,即把数据对象分成多个类或簇,在同一个簇中的对象之间具有较高的相似度,而不同簇中的对象差别较大。它对未知数据的划分和分析起着非常有效的作用。通过聚类,能够识别密集和稀疏的区域,发现全局的分布模式,以及数据属性之间的相互关系等。为了找到效率高、通用性强的聚类方法人们从不同角度提出了许多种聚类算法,一般可分为基于层次的,基于划分的,基于密度的,基于网格的和基于模型的五大类。 2 数据挖掘对聚类算法的要求(1)可兼容性:要求聚类算法能够适应并处理属性不同类型的数据。(2)可伸缩性:要求聚类算法对大型数据集和小数据集都适用。(3)对用户专业知识要求最小化。(4)对数据类别簇的包容性:即聚类算法不仅能在用基本几何形式表达的数据上运行得很好,还要在以其他更高维度形式表现的数据上同样也能实现。(5)能有效识别并处理数据库的大量数据中普遍包含的异常值,空缺值或错误的不符合现实的数据。(6)聚类结果既要满足特定约束条件,又要具有良好聚类特性,且不丢失数据的真实信息。(7)可读性和可视性:能利用各种属性如颜色等以直观形式向用户显示数据挖掘的结果。(8)处理噪声数据的能力。(9)算法能否与输入顺序无关。 3 各种聚类算法介绍随着人们对数据挖掘的深入研究和了解,各种聚类算法的改进算法也相继提出,很多新算法在前人提出的算法中做了某些方面的提高和改进,且很多算法是有针对性地为特定的领域而设计。某些算法可能对某类数据在可行性、效率、精度或简单性上具有一定的优越性,但对其它类型的数据或在其他领域应用中则不一定还有优势。所以,我们必须清楚地了解各种算法的优缺点和应用范围,根据实际问题选择合适的算法。 3.1 基于层次的聚类算法基于层次的聚类算法对给定数据对象进行层次上的分解,可分为凝聚算法和分裂算法。 (1)自底向上的凝聚聚类方法。这种策略是以数据对象作为原子类,然后将这些原子类进行聚合。逐步聚合成越来越大的类,直到满足终止条件。凝聚算法的过程为:在初始时,每一个成员都组成一个单独的簇,在以后的迭代过程中,再把那些相互邻近的簇合并成一个簇,直到所有的成员组成一个簇为止。其时间和空间复杂性均为O(n2)。通过凝聚式的方法将两簇合并后,无法再将其分离到之前的状态。在凝聚聚类时,选择合适的类的个数和画出原始数据的图像很重要。 [!--empirenews.page--] (2)自顶向下分裂聚类方法。与凝聚法相反,该法先将所有对象置于一个簇中,然后逐渐细分为越来越小的簇,直到每个对象自成一簇,或者达到了某个终结条件。其主要思想是将那些成员之间不是非常紧密的簇进行分裂。跟凝聚式方法的方向相反,从一个簇出发,一步一步细化。它的优点在于研究者可以把注意力集中在数据的结构上面。一般情况下不使用分裂型方法,因为在较高的层很难进行正确的拆分。 3.2 基于密度的聚类算法很多算法都使用距离来描述数据之间的相似性,但对于非凸数据集,只用距离来描述是不够的。此时可用密度来取代距离描述相似性,即基于密度的聚类算法。它不是基于各种各样的距离,所以能克服基于距离的算法只能发现“类圆形”的聚类的缺点。其指导思想是:只要一个区域中的点的密度(对象或数据点的数目)大过某个阈值,就把它加到与之相近的聚类中去。该法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而可发现任意形状的簇,并可用来过滤“噪声”数据。常见算法有DBSCAN,DENCLUE 等。[1][2][3]下一页 3.3 基于划分的聚类算法给定一个N个对象的元组或数据库,根据给定要创建的划分的数目k,将数据划分为k个组,每个组表示一个簇类(<=N)时满足如下两点:(1)每个组至少包含一个对象;(2)每个对

一种新的最佳聚类数确定方法

一种新的最佳聚类数确定方法 一种新的最佳聚类数确定方法 摘要:为了更有效地确定数据集的聚类数最佳聚类数,提出一种新的确定数据集最佳聚类数的算法。该算法借签层次聚类的思想,一次性地生成所有可能的划分,然后根据有效性指标选择最佳的聚类划分,进而获得最佳聚类数。理论分析和实验结果证明,该算法具有良好的性能。关键词:层次聚类;最佳聚类数;聚类有效性指标;聚类 最佳聚类数的判定通常采用一种基于迭代的trial-and-error过程[1]进行,该过程是在给定的数据集上,使用不同的参数(通常是聚类数k),运行特定的聚类算法,对数据集进行不同的划分,然后计算每种划分的指标值。通过比较各个指标值,其中符合预定条件的指标值所对应的聚类个数被认为是最佳的聚类数。实际上,trial-and-error过程存在两个不足之处:(1)聚类数k 值的确定对于缺乏丰富聚类分析经验的用户来说是难以准确确定的[2],这需进一步提出寻找更合理的聚类数k的方法;(2)目前提出的许多检验聚类有效性的指标,如Vxie指标[3]、Vwsj指标[1]等,但这些指标都是基于某个特定聚类算法提出的,在实际应用中受到了极大限制。鉴于上述两种情况,本文借鉴层次聚类的思想一次性地生成所有可能的聚类划分,并计算其对应的有效性指标,然后选择指标值最小的聚类划分来估计数据集的最佳聚类数,这样可以避免对大型数据集的反复聚类,而且该过程不依赖于特定的聚类算法。1聚类有效性指标本文采用的是一个不依赖于具体算法的有效性指标Q(C)来评估数据集的聚类效果。该有效性指标主要是通过类内数据对象的紧凑度以及类间数据对象的分离度[4]衡量聚类质量。1.3噪声点与孤立点的消除基于数据集中存在的噪声点与孤立点对聚类结果的影响,本文认为单独利用有效性指标所得出的聚类数为最佳聚类数k*的结论并不成立。根据

各种密度聚类算法

什么是聚类?聚类:- 将一个对象的集合分割成几个类,每个类内的对象之间是相似的,但与其他类的对象是不相似的。评判聚类好坏的标准:1 ,能够适用于大数据量。 2 ,能应付不同的数据类型。 3 ,能够发现不同类型的聚类。 4 ,使对专业知识的要求降到最低。 5 ,能应付脏数据。 6 ,对于数据不同的顺序不敏感。 7 ,能应付很多类型的数据。 8 ,模型可解释,可使用。 二,聚类所基于的数据类型。 聚类算法通常基于“数据矩阵”和“ Dissimilarity 矩阵”。 怎么样计算不同对象之间的距离? 1 ,数值连续的变量(体重,身高等):度量单位的选取对于聚类的结果的很重要的。例如将身高的单位从米变为尺,将体重的单位从公斤变为磅将对聚类的结果产生很大的影响。为了避免出现这种情况,我们必须将数据标准化:将数据中的单位“去掉”。 A, 计算绝对背离度。B, 计算标准量度。下面我们考虑怎样来计算两个对象之间的差异。 1 ,欧几里得距离。 2 ,曼哈顿距离。这两种算法有共同之处:d(i,j)>=0,d(i,i)=0, d(i,j)=d(j,i),d(i,j)=

(完整word版)各种聚类算法介绍及对比

一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchical methods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法和分裂的层次聚类算法(agglomerative和divisive),也可以理解为自下而上法(bottom-up)和自上而下法(top-down)。自下而上法就是一开始每个个体(object)都是一个 类,然后根据linkage寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的“类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据Linkage判断“类” 的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张/浓缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如循环定位。 2)Hierarchical methods中比较新的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用,而且数据类型是numerical。首先利用树的结构对对象集进行划分,然后再利用其它聚类方法对这些聚类进行优化;ROCK(A Hierarchical Clustering Algorithm for Categorical Attributes)主要用在categorical的数据类型上;Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂度很高,O(n^2)。 2、层次聚类的流程 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。这里给出采用最小距离的凝聚层次聚类算法流程: (1) 将每个对象看作一类,计算两两之间的最小距离; (2) 将距离最小的两个类合并成一个新类; (3) 重新计算新类与所有类之间的距离; (4) 重复(2)、(3),直到所有类最后合并成一类。

一种启发式确定聚类数方法

小型微型计算机系统Journal of Chinese Computer Systems 2018年7月第7期Vol.39No.72018 收稿日期:2017-05-24 收修改稿日期:2017-06-28 基金项目:国家自然科学基金项目(61272194)资助. 作者简介:卢建云,男,1982年生,博士,讲师,CCF 会员,研究方向为数据挖掘二机器学习等;朱庆生,男,1956年生,博士,教授,博士生导师,CCF 会员,研究方向为软件工程二 数据挖掘二机器学习;吴全旺,男,1985年生,博士,讲师,研究方向为云计算二服务计算等. 一种启发式确定聚类数方法 卢建云1,3,朱庆生1,2,吴全旺1 1(重庆大学计算机学院,重庆400044) 2(重庆大学软件理论与技术重庆市重点实验室,重庆400044)3 (重庆电子工程职业学院软件学院,重庆401331) E-mail :qszhu @https://www.360docs.net/doc/112305118.html, 摘 要:聚类分析是数据挖掘领域中最重要的任务之一,目前许多聚类算法已经被成功应用到图像聚类二文本聚类二信息检索二社交网络等领域.但面对结构复杂,分布不均衡的数据集时,确定数据集的最佳聚类数目显得尤为困难.因此,本文针对结构复杂二分布不均衡的数据集提出了一种启发式最佳聚类数确定的方法.首先,构建随机游走模型对数据集中的点进行重要性排序,通过k-最近邻距离图谱确定重要数据点的个数,由此排除噪声点和不重要的点对类之间以及类内密度变化的影响.其次,通过设计的启发式规则(k-最近邻链间距和k-最近邻链最近邻间距)构建决策图确定最佳聚类数目并识别出聚类代表点.最后,通过最近距离传播算法进行聚类.实验表明该方法可以快速准确地找到最佳聚类个数,同时,本文提出的聚类算法与流行的聚类算法相比取得了比较好的聚类结果. 关键词:聚类分析;聚类数目;启发式规则;随机游走模型;k-最近邻链 中图分类号:TP 18 文献标识码:A 文章编号:1000-1220(2018)07-1381-05 Heuristic Method of Determining the Number of Clusters LU Jian-yun 1,3,ZHU Qing-sheng 1,2,WU Quan-wang 1 1(School of Computer ,Chongqing University ,Chongqing 400044,China ) 2(Chongqing Key Laboratory of Software Theory &Technology ,Chongqing University ,Chongqing 400044,China )3 (School of Software ,Chongqing College of Electronic Engineering ,Chongqing 401331,China ) Abstract :Cluster analysis is one of the important tasks in data mining.Currently ,many clustering algorithms are successfully applied in image clustering ,text clustering ,information retrieval ,social networks ,etc.When the dataset is complex with different sizes ,shapes and densities ,it is difficult to find the best number of clusters.In this paper ,we propose a heuristic method of determining the best number of clusters.First ,we build a random walk model to sort the data points by their global scores ,and then k dist graph is used to determine the number of important data points in order to reduce the influence of noises and border points.Second ,we develop two heuristic rules (the gap of k-nearest neighbors chain and the nearest neighbor gap of k-nearest neighbors chain )to determine the best number of clusters and the representative points of cluster by decision graph.Finally ,clustering results are obtained by nearest distance propagation algorithm.Experimental results show that the proposed method can find the correct number of clusters quickly and the pro-posed clustering algorithm achieves comparable clustering performance with the popular clustering algorithms.Key words :cluster analysis ;the number of clusters ;heuristic rules ;random walk model ;k-nearest neighbors chain 1 引 言 聚类分析是数据挖掘二模式识别领域的最重要任务之一,具有非常广泛的应用,例如,图像聚类,社交网络,信息检索,文本聚类等.聚类就是将数据集划分成若干个类簇,同一类簇中的数据点具有高度的相似度,不同类簇中的数据点具有极低的相似度.层次聚类可以将数据集表示成树型结构图,根据需求对树型结构图的某一层次进行划分,从而得到相应的聚类.聚类在实际应用中遇到很多的挑战,比如噪声点干扰二类内密度变化二复杂形状二高维数据二不均衡数据等.这些挑战对聚类数目的选择造成了很大的困难,同时聚类结果表现也达 不到要求.聚类数目是聚类研究的基础问题之一,大多数聚类算法需要输入聚类数目,在没有更多的先验知识的情况下,确定最佳聚类数目显得尤为困难. 针对复杂数据集确定最佳聚类数目问题,本文提出了一种启发式的最佳聚类数目确定方法.K-最近邻链间距启发规则能够通过半径扩展的方式识别出球凸形状类间的变化,K-最近邻链最近邻间距启发规则能够识别出不规则形状类间的变化.启发式规则能够清楚地识别出类间的变化情况,通过决策图确定出最佳聚类数目和聚类代表点.在数据集上的实验结果表明,我们提出的聚类方法可以有效地找到正确的聚类个数,与流行的聚类算法相比取得了较好的聚类结果. 万方数据

各种密度聚类算法

一,什么是聚类? 聚类: - 将一个对象的集合分割成几个类,每个类内的对象之间是相似的,但与其他类的对象是不相似的。评判聚类好坏的标准: 1 ,能够适用于大数据量。 2 ,能应付不同的数据类型。 3 ,能够发现不同类型的聚类。 4 ,使对专业知识的要求降到最低。 5 ,能应付脏数据。 6 ,对于数据不同的顺序不敏感。 7 ,能应付很多类型的数据。 8 ,模型可解释,可使用。 二,聚类所基于的数据类型。 聚类算法通常基于“数据矩阵”和“ Dissimilarity 矩阵”。 怎么样计算不同对象之间的距离? 1 ,数值连续的变量(体重,身高等):度量单位的选取对于聚类的结果的很重要的。例如将身高的单位从米变为尺,将体重的单位从公斤变为磅将对聚类的结果产生很大的影响。为了避免出现这种情况,我们必须将数据标准化:将数据中的单位“去掉”。 A, 计算绝对背离度。 B, 计算标准量度。 下面我们考虑怎样来计算两个对象之间的差异。 1 ,欧几里得距离。 2 ,曼哈顿距离。这两种算法有共同之处: d(i,j)>=0,d(i,i)=0, d(i,j)=d(j,i),d(i,j)=

一种基于密度的快速聚类算法

第37卷第11期 2000年11月计算机研究与发展JOU RNAL O F COM PU T ER R ESEA RCH &D EV ELO PM EN T V o l 137,N o 111N ov .2000 原稿收到日期:1999209220;修改稿收到日期:1999212209.本课题得到国家自然科学基金项目(项目编号69743001)和国家教委博士点教育基金的资助.周水庚,男,1966年生,博士研究生,高级工程师,主要从事数据库、数据仓库和数据挖掘以及信息检索等的研究.周傲英,男,1965年生,教授,博士生导师,主要从事数据库、数据挖掘和W eb 信息管理等研究.曹晶,女,1976年生,硕士研究生,主要从事数据库、数据挖掘等研究.胡运发,男,1940年生,教授,博士生导师,主要从事知识工程、数字图书馆、信息检索等研究. 一种基于密度的快速聚类算法 周水庚 周傲英 曹 晶 胡运发 (复旦大学计算机科学系 上海 200433) 摘 要 聚类是数据挖掘领域中的一个重要研究方向.聚类技术在统计数据分析、模式识别、图像处理等领域有广泛应用.迄今为止人们提出了许多用于大规模数据库的聚类算法.基于密度的聚类算法DBSCAN 就是一个典型代表.以DBSCAN 为基础,提出了一种基于密度的快速聚类算法.新算法以核心对象邻域中所有对象的代表对象为种子对象来扩展类,从而减少区域查询次数,降低I O 开销,实现快速聚类.对二维空间数据测试表明:快速算法能够有效地对大规模数据库进行聚类,速度上数倍于已有DBSCAN 算法. 关键词 空间数据库,数据挖掘,聚类,密度,快速算法,代表对象 中图法分类号 T P 311.13;T P 391 A FAST D ENSIT Y -BASED CL USTER ING AL G OR ITH M ZHOU Shu i 2Geng ,ZHOU A o 2Y ing ,CAO J ing ,and HU Yun 2Fa (D ep a rt m en t of Co mp u ter S cience ,F ud an U n iversity ,S hang ha i 200433) Abstract C lu stering is a p rom ising app licati on area fo r m any fields including data m in ing ,statistical data analysis ,p attern recogn iti on ,i m age p rocessing ,etc .In th is paper ,a fast den sity 2based clu stering algo rithm is developed ,w h ich con siderab ly speeds up the o riginal DB SCAN algo rithm .U n like DB SCAN ,the new DB SCAN u ses on ly a s m all num ber of rep resen tative ob jects in a co re ob ject’s neighbo rhood as seeds to exp and the clu ster so that the execu ti on frequency of regi on query can be decreased ,and con sequen tly the I O co st is reduced .Experi m en tal resu lts show that the new algo rithm is effective and efficien t in clu stering large 2scale databases ,and it is faster than the o riginal DB SCAN by several ti m es . Key words spatial database ,data m in ing ,clu stering ,den sity ,fast algo rithm ,rep resen tative ob jects 1 概 述 近10多年来,数据挖掘逐渐成为数据库研究领域的一个热点[1].其中,聚类分析就是广为研究的问题之一.所谓聚类,就是将数据库中的数据进行分组,使得每一组内的数据尽可能相似而不同组内的数据尽可能不同.聚类技术在统计数据分析、模式识别、图像处理等领域都有广泛的应用前景.迄今为止,人们已经提出了许多聚类算法[2~7].所有这些算法都试图解决大规模数据的聚类问题.以基于密度的聚类算法DB SCAN [4]为基础,本文提出一种基于密度的快速聚类算法.通过选用核心对象附近区域包含的所有对象的代表对象作为种子对象来扩展类,快速算法减少了区域查询的次数,从而减低了聚类时间和I O 开销 .本文内容安排如下:首先在第2节中介绍基于密度的聚类算法DB SCAN 的基本思想,并分析它的局限

各种聚类算法的比较

各种聚类算法的比较 聚类的目标是使同一类对象的相似度尽可能地小;不同类对象之间的相似度尽可能地大。目前聚类的方法很多,根据基本思想的不同,大致可以将聚类算法分为五大类:层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法和用于高维度的聚类算法。摘自数据挖掘中的聚类分析研究综述这篇论文。 1、层次聚类算法 1.1聚合聚类 1.1.1相似度依据距离不同:Single-Link:最近距离、Complete-Link:最远距离、Average-Link:平均距离 1.1.2最具代表性算法 1)CURE算法 特点:固定数目有代表性的点共同代表类 优点:识别形状复杂,大小不一的聚类,过滤孤立点 2)ROCK算法 特点:对CURE算法的改进 优点:同上,并适用于类别属性的数据 3)CHAMELEON算法 特点:利用了动态建模技术 1.2分解聚类 1.3优缺点 优点:适用于任意形状和任意属性的数据集;灵活控制不同层次的聚类粒度,强聚类能力 缺点:大大延长了算法的执行时间,不能回溯处理 2、分割聚类算法 2.1基于密度的聚类 2.1.1特点 将密度足够大的相邻区域连接,能有效处理异常数据,主要用于对空间数据的聚类

1)DBSCAN:不断生长足够高密度的区域 2)DENCLUE:根据数据点在属性空间中的密度进行聚类,密度和网格与处理的结合 3)OPTICS、DBCLASD、CURD:均针对数据在空间中呈现的不同密度分不对DBSCAN作了改进 2.2基于网格的聚类 2.2.1特点 利用属性空间的多维网格数据结构,将空间划分为有限数目的单元以构成网格结构; 1)优点:处理时间与数据对象的数目无关,与数据的输入顺序无关,可以处理任意类型的数据 2)缺点:处理时间与每维空间所划分的单元数相关,一定程度上降低了聚类的质量和准确性 2.2.2典型算法 1)STING:基于网格多分辨率,将空间划分为方形单元,对应不同分辨率2)STING+:改进STING,用于处理动态进化的空间数据 3)CLIQUE:结合网格和密度聚类的思想,能处理大规模高维度数据4)WaveCluster:以信号处理思想为基础 2.3基于图论的聚类 2.3.1特点 转换为组合优化问题,并利用图论和相关启发式算法来解决,构造数据集的最小生成数,再逐步删除最长边 1)优点:不需要进行相似度的计算 2.3.2两个主要的应用形式 1)基于超图的划分 2)基于光谱的图划分 2.4基于平方误差的迭代重分配聚类 2.4.1思想 逐步对聚类结果进行优化、不断将目标数据集向各个聚类中心进行重新分配以获最优解

聚类算法比较

聚类算法: 1. 划分法:K-MEANS算法、K-M EDOIDS算法、CLARANS算法; 1)K-means 算法: 基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇。然后按平均法重新计算各个簇的质心,从而确定新的簇心。一直迭代,直到簇心的移动距离小于某个给定的值。 K-Means聚类算法主要分为三个步骤: (1)第一步是为待聚类的点寻找聚类中心 (2)第二步是计算每个点到聚类中心的距离,将每个点聚类到离该点最近的聚类中去 (3)第三步是计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 反复执行(2)、(3),直到聚类中心不再进行大范围移动或者聚类次数达到要求为止 下图展示了对n个样本点进行K-means聚类的效果,这里k取2: (a)未聚类的初始点集 (b)随机选取两个点作为聚类中心 (c)计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去 (d)计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 (e)重复(c),计算每个点到聚类中心的距离,并聚类到离该点最近的聚类中去 (f)重复(d),计算每个聚类中所有点的坐标平均值,并将这个平均值作为新的聚类中心 优点: 1.算法快速、简单; 2.对大数据集有较高的效率并且是可伸缩性的; 3.时间复杂度近于线性,而且适合挖掘大规模数据集。 缺点: 1. 在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。 2. 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响。

密度聚类算法 DENCLUE 2.0

DENCLUE2.0:Fast Clustering based on Kernel Density Estimation Alexander Hinneburg1and Hans-Henning Gabriel2 1Institute of Computer Science Martin-Luther-University Halle-Wittenberg,Germany hinneburg@informatik.uni-halle.de 2Otto-von-Guericke-University Magdeburg,Germany Hans-Henning.Gabriel@web.de Abstract.The Denclue algorithm employs a cluster model based on kernel density estimation.A cluster is de?ned by a local maximum of the estimated density function.Data points are assigned to clusters by hill climbing,i.e.points going to the same local maximum are put into the same cluster.A disadvantage of Denclue1.0is,that the used hill climbing may make unnecessary small steps in the beginning and never converges exactly to the maximum,it just comes close. We introduce a new hill climbing procedure for Gaussian kernels,which adjusts the step size automatically at no extra costs.We prove that the procedure converges exactly towards a local maximum by reducing it to a special case of the expectation maximization algorithm.We show experimentally that the new procedure needs much less iterations and can be accelerated by sampling based methods with sacri?cing only a small amount of accuracy. 1Introduction Clustering can be formulated in many di?erent ways.Non-parametric methods are well suited for exploring clusters,because no generative model of the data is assumed.Instead,the probability density in the data space is directly estimated from data instances.Kernel density estimation[15,14]is a principled way of doing that task.There are several clustering algorithms,which exploit the adaptive nature of a kernel density estimate.Examples are the algorithms by Schnell [13]and Fukunaga[5]which use the gradient of the estimated density function. The algorithms are also described in the books by Bock[3]and Fukunaga[4] respectively.The Denclue framework for clustering[7,8]builds upon Schnells algorithm.There,clusters are de?ned by local maxima of the density estimate. Data points are assigned to local maxima by hill climbing.Those points which are assigned to the same local maximum are put into a single cluster. However,the algorithms use directional information of the gradient only. The step size remains?xed throughout the hill climbing.This implies certain disadvantages,namely the hill climbing does not converges towards the local maximum,it just comes close,and the number of iteration steps may be large

(完整版)聚类算法总结.doc

1.聚类定义 “聚类是把相似的对象通过静态分类的方法分成不同的组别或者 更多的子集( subset),这样让在同一个子集中的成员对象都有一 些相似的属性”—— wikipedia “聚类分析指将物理或抽象对象 的集合分组成为由类似的对象组 成的多个类的分析过程。它是一种重要的人类行为。聚类是将数 据分类到不同的类或者簇这样的一个过程,所以同一个簇中的对 象有很大的相似性,而不同簇间的对象有很大的相异性。”——百度百科 说白了,聚类( clustering)是完全可以按字面意思来理解的——将相同、相似、相近、相关的对象实例聚成一类的过程。简单理 解,如果一个数据集合包含 N 个实例,根据某种准则可以将这 N 个 实例划分为 m 个类别,每个类别中的实例都是相关的,而不同类别 之间是区别的也就是不相关的,这个过程就叫聚类了。 2.聚类过程 : 1)数据准备 :包括特征标准化和降维 . 2)特征选择 :从最初的特征中选择最有效的特征 ,并将其存储于向量 中 . 3)特征提取 :通过对所选择的特征进行转换形成新的突出特征.

4)聚类 (或分组 ):首先选择合适特征类型的某种距离函数 (或构造新的距离函数 )进行接近程度的度量 ;而后执行聚类或分组 . 5)聚类结果评估 :是指对聚类结果进行评估 .评估主要有 3 种 :外部有效性评估、内部有效性评估和相关性测试评估. 3聚类算法的类别 没有任何一种聚类技术(聚类算法 )可以普遍适用于揭示各种多维数据集所呈现出来的多种多样的结构,根据数据在聚类中的积聚规则以及应用这些规则的方法,有多种聚类算法.聚类算法有多种分类方法将聚类算法大致分成层次化聚类算法、划分式聚类算 法、基于密度和网格的聚类算法和其他聚类算法,如图1 所示的4 个类别.

各种聚类算法介绍及对比教学内容

各种聚类算法介绍及 对比

一、层次聚类 1、层次聚类的原理及分类 1)层次法(Hierarchical methods)先计算样本之间的距离。每次将距离最近的点合并到同一个类。然后,再计算类与类之间的距离,将距离最近的类合并为一个大类。不停的合并,直到合成了一个类。其中类与类的距离的计算方法有:最短距离法,最长距离法,中间距离法,类平均法等。比如最短距离法,将类与类的距离定义为类与类之间样本的最短距离。 层次聚类算法根据层次分解的顺序分为:自下底向上和自上向下,即凝聚的层次聚类算法和分裂的层次聚类算法(agglomerative和divisive),也可以理解为自下而上法(bottom-up)和自上而下法(top-down)。自下而上法就是一开始每个个体(object)都是一个类,然后根据linkage寻找同类,最后形成一个“类”。自上而下法就是反过来,一开始所有个体都属于一个“类”,然后根据linkage排除异己,最后每个个体都成为一个“类”。这两种路方法没有孰优孰劣之分,只是在实际应用的时候要根据数据特点以及你想要的“类”的个数,来考虑是自上而下更快还是自下而上更快。至于根据Linkage判断“类”的方法就是最短距离法、最长距离法、中间距离法、类平均法等等(其中类平均法往往被认为是最常用也最好用的方法,一方面因为其良好的单调性,另一方面因为其空间扩张/浓缩的程度适中)。为弥补分解与合并的不足,层次合并经常要与其它聚类方法相结合,如循环定位。 2)Hierarchical methods中比较新的算法有BIRCH(Balanced Iterative Reducing and Clustering Using Hierarchies利用层次方法的平衡迭代规约和聚类)主要是在数据量很大的时候使用,而且数据类型是numerical。首先利用树的结构对对象集进行划分,然后再利用其它聚类方法对这些聚类进行优化;ROCK(A Hierarchical Clustering Algorithm for Categorical Attributes)主要用在categorical的数据类型上;Chameleon(A Hierarchical Clustering Algorithm Using Dynamic Modeling)里用到的linkage是kNN(k-nearest-neighbor)算法,并以此构建一个graph,Chameleon的聚类效果被认为非常强大,比BIRCH好用,但运算复杂度很高,O(n^2)。 2、层次聚类的流程 凝聚型层次聚类的策略是先将每个对象作为一个簇,然后合并这些原子簇为越来越大的簇,直到所有对象都在一个簇中,或者某个终结条件被满足。绝大多数层次聚类属于凝聚型层次聚类,它们只是在簇间相似度的定义上有所不同。这里给出采用最小距离的凝聚层次聚类算法流程: (1) 将每个对象看作一类,计算两两之间的最小距离; (2) 将距离最小的两个类合并成一个新类; (3) 重新计算新类与所有类之间的距离; (4) 重复(2)、(3),直到所有类最后合并成一类。

相关文档
最新文档