一种基于K-Means局部最优性的高效聚类算法
kmeans聚类优化方法
kmeans聚类优化方法
K均值(K-means)聚类是一种常用的无监督学习方法,用于将数据点分成不同的组或簇。
在K均值聚类中,首先需要选择簇的数量K,然后算法会尝试将数据点分成K个簇,使得每个数据点都属于离它最近的簇。
这一过程是通过最小化数据点与其所属簇中心之间的距离来实现的。
然而,K均值聚类也存在一些局限性和优化方法。
首先,K均值对初始簇中心的选择非常敏感,不同的初始簇中心可能导致不同的聚类结果。
因此,为了优化K均值聚类,可以采用多次随机初始化簇中心的方法,然后选择最优的聚类结果。
另外,K均值对异常值和噪声敏感,这可能会导致聚类结果不稳定。
为了解决这个问题,可以采用基于密度的聚类方法,如DBSCAN(基于密度的空间聚类应用噪声)来优化K均值聚类。
DBSCAN可以有效地处理异常值和噪声,同时不需要预先指定簇的数量。
此外,K均值聚类还存在簇形状不规则、大小不平衡等问题。
针对这些问题,可以考虑使用层次聚类或者基于密度的聚类方法,
这些方法可以更好地处理不规则形状的簇和大小不平衡的数据。
最后,K均值聚类还可以通过加入权重、使用不同的距离度量、采用核方法等方式进行优化,以适应不同类型的数据和应用场景。
总之,K均值聚类是一种常用的聚类方法,但在实际应用中需
要考虑到其局限性,并结合其他方法进行优化,以获得更稳定、准
确的聚类结果。
基于局部相似性的K—means谱聚类算法
关键 词 : 局部 相 似性 ; 谱 聚 类 ;K . me a n s 聚 类 中图分 类号 : T P 1 5 文献 标志 码 : A
Al g o r i t h m o f K- me a ns S pe c t r a l Cl u s t e r i ng Ba s e d o n Lo c a l Si mi l a r i t y
t y i n d e x,a n d ma i n t a i n s t h e o i r g i n a l c o mp u t a t i o n a l c o mp l e x i t y. T h e p r o p o s e d me t h o d i s t e s t e d o n b o t h c o mp u t e r - g e n e r a t e d a n d r e a l - wo r l d n e t wo r k s ,a n d i s c o mp a r e d wi t h t h e t y p i c a l a l g o it r h ms i n c o mmu n i t y d e t e c t i o n .E x p e r i me n t l a r e s u l t s v e r i f y a n d c o n i f r m t h e f e a s i b i l i t y a n d v a l i d i t y o f t h e p r o p o s e d me t h o d t o
1 a r i t y i n d e x , n e t wo r k n o d e s a r e c l u s t e r e d b y t h i s s i mi l a r i t y me a s u r e c o mb i n i n g wi t h Kme a n s s p e c t r a l c l u s —
kmeans++聚类算法步骤
kmeans++聚类算法步骤K-means++是一种改进的K-means聚类算法,其主要目的是为了解决K-means算法在初始化质心时的随机性,以避免陷入局部最优解。
以下是K-means++的步骤:1.选择初始质心:在开始时,算法随机选择一个点作为第一个质心。
然后,在选择下一个质心时,算法会考虑所有未被选为质心的点,并选择一个使聚类结果尽可能好的点作为质心。
具体来说,算法计算每个点的"代价",这取决于该点与已选质心的距离。
然后,选择具有最小代价的点作为下一个质心。
这个过程重复k次,直到选择了k个质心。
2.分配数据点到最近的质心:一旦确定了k个质心,每个数据点被分配到最近的质心所代表的聚类中。
3.重新计算质心:对于每个聚类,新的质心被计算为该聚类中所有点的平均值。
4.迭代:步骤2和步骤3重复进行,直到质心不再发生显著变化或者达到预设的最大迭代次数。
这种改进使得K-means++在许多情况下都比传统的K-means更稳定,并且通常能找到更好的聚类结果。
然而,由于它需要更多的计算和存储,所以在大数据集上可能比K-means慢。
K-means++聚类算法适用于需要找到紧凑、分离良好的聚类的场景。
具体来说,以下是一些可能适用的场景:1.特征维度为数值型的数据聚类:该算法适用于对数值型特征进行聚类的任务,例如市场分析、金融分析、社交网络分析等领域。
2.文本聚类:在文本聚类中,可以将文本数据转换为数值矩阵,然后使用K-means++算法进行聚类。
例如,可以将新闻网站上的相同话题的新闻聚集在一起,并自动生成一个个不同话题的新闻专栏。
3.图像分割:在图像分割中,可以使用K-means++算法将图像中的像素划分为不同的区域,以便更好地识别和理解图像。
4.市场细分:市场细分是指将整个市场划分为不同的细分市场,以满足不同消费者的需求。
K-means++算法可以根据消费者的行为、兴趣和偏好将消费者划分为不同的群体。
聚类算法:K-Means和DBSCAN的比较
聚类算法:K-Means和DBSCAN的比较K-Means和DBSCAN是两种常见的聚类算法,它们在数据挖掘和机器学习领域具有重要的应用价值。
本文将比较这两种算法的优缺点、适用场景等方面,以期帮助读者更好地理解它们的特点和区别。
1. K-Means算法K-Means算法是一种基于距离的聚类算法,它的基本思想是将数据集划分为K个簇,使得每个样本点都属于与其最近的簇。
具体来说,K-Means算法的工作流程如下:(1)随机初始化K个中心点;(2)将每个样本点分配到距离最近的中心点所对应的簇中;(3)更新每个簇的中心点,即将该簇内所有样本点的均值作为新的中心点;(4)重复执行步骤(2)和(3),直到中心点不再发生变化或达到迭代次数上限。
K-Means算法的优点包括实现简单、计算高效等,适用于数据量较大的情况。
但它也存在一些缺点,比如对初始中心点的选择敏感,容易陷入局部最优解,不适用于发现非凸簇等情况。
2. DBSCAN算法DBSCAN(Density-Based Spatial Clustering of Applications with Noise)算法是一种基于密度的聚类算法,它的核心思想是通过样本点的密度来发现聚类簇。
DBSCAN算法的具体步骤如下:(1)以任意顺序选择一个未访问的样本点;(2)计算该样本点的邻域内的样本点个数,若超过预设的阈值,则标记为核心点,否则标记为噪声点;(3)将与核心点密度相连的样本点放入同一个簇中,并继续递归地扩展该簇;(4)重复执行步骤(1)和(2),直到所有样本点都被访问为止。
DBSCAN算法的优点在于可以发现任意形状的簇,并且对噪声数据具有鲁棒性,不受初始参数的影响。
但它也存在一些局限性,比如对密度不同的簇难以处理,对参数的敏感性较强等。
3. K-Means和DBSCAN的比较K-Means和DBSCAN是两种不同的聚类算法,它们在很多方面存在明显的差异。
下面将分别从适用场景、对数据特点的适应性、算法复杂度等方面对它们进行比较。
基于复合形遗传算法的K—means优化聚类方法
用 以代 表 C个 类 型 。
K—m as 类算 法 适用 于 在 窄 间 旱 现椭 球状 en 聚
复形 , 然后进行寻优搜索 , 包括反射 、 延伸 、 搜索 , 替代
复合形 中 目标 函数最 大 的点一最 差 点 , 如此 反 复进 行 ,
分 布 时的聚类 , 它足 一种 迭代 的聚类 算法 , 代过 程 中 迭 不 断地 移动簇 集 中的成 员 直 至 得 到理 想 的簇 集为 止 。
基金 项 目 : 安 巾 软科 学 基金 (4 R 3 ) 两 0 K 0 6
作者简 介: 赵
锋(9 1) 女 , 1 一 , 河南驻马J人 , 8 占 硕士研究 , 主要研究方向为数据挖掘 、 复杂系统建模 仿 真。
维普资讯
・
6 O・
航 空 计 算 技 术
l K— en 聚类算法 m as
K—m as 法 以 k为参 数 , n个 对 象分 为 c en 算 把 个簇 , 以使簇 内具有 较高 的相 似度 , 簇 问 的相似 度较
低。相似度的计算根据 ・ 中对象的平均值 ( 个簇 被看 作簇 的重心) 来进行。其 I 作原理为: 首先随机从数据
算法——复合形遗传算法 , 利用复合形法的较强的局
部搜 索能 力来 改善 遗 传 算 法种 群 的质 量 , 发 挥 两种 在
算法优点的同时克服 r各 自的缺点与不足, 人大提高
了收敛速度 。
库的优点 , 但是 , 也存在着很大的局 限性 : 聚类效果受 到初 始时 聚类 r心 的 影 响很 大 , 算 法 是 采用 梯 度 法 f 1 该
求解极值 , 结果往往是 局部最优, 得不到全局最优 而 解 。遗传算法仿效了遗传学中生物从低级到高级 的进化过程, 将进化操作应用于一群对搜索空间( 或称
一种基于局部异常因子(LOF)的k-means算法
一种基于局部异常因子(LOF)的k-means算法陈静;王伟【摘要】聚类分析算法是数据挖掘技术的一个重要分支,目前其研究已经广泛应用于教育、金融、零售等众多领域并取得了较好的效果。
本文结合了基于划分和密度的聚类思想,提出了一个适用于挖掘任意形状的、密度不均的、高效的聚类算法。
%Cluster analysis is an important research field in data mining,at present,the research has been applied to the financial, retail and other fields, and have achieved good results.This paper studied partition and density clustering algorithm, proposed a new algorithm which is suitable for mining arbitrary shape and uneven density.【期刊名称】《电子测试》【年(卷),期】2016(000)012【总页数】2页(P60-61)【关键词】数据挖掘;聚类算法;局部异常因子【作者】陈静;王伟【作者单位】青岛职业技术学院,山东青岛,266555;青岛职业技术学院,山东青岛,266555【正文语种】中文随着数据挖掘技术应用领域越来越广泛,聚类分析也接受着各种严峻的“考验”:处理的数据类型的多样化,对大数据集进行高效处理的迫切需求,对任意形状聚类的有效识别等等。
这些都要求聚类算法能够具体高效、灵活等特点,因此,寻求一个高效、灵活的聚类算法,是研究人员的当务之急。
聚类分析方法是数据挖掘技术应用最广泛的算法之一。
在机器学习领域,聚类分析算法属于无指导型学习算法。
给定一组对象,聚类分析自动地将其聚集成k个集群,每个集群中的对象具有极高的相似度,而属于不同集群的对象间的相似度很低。
一种基于K-means聚类的数字化调香方法[发明专利]
专利名称:一种基于K-means聚类的数字化调香方法专利类型:发明专利
发明人:孔波,蔡佳校,钟科军,卢红兵,杨华武,李燕春,吴榆申请号:CN201910704921.9
申请日:20190731
公开号:CN112397156A
公开日:
20210223
专利内容由知识产权出版社提供
摘要:本发明公开了一种基于K‑means聚类的数字化调香方法,是通过建立的香原料信息库,使用K‑means聚类算法将香原料信息库中相互之间相似度较高的香原料进行聚类,再基于聚类划分结果对创香目标经验配方单中的香原料进行自动识别,得到相关性强的相关香原料并对其进行替换,完成香原料信息更新,最后通过香比强值的差异,对香原料的用量信息进行调整,生成并输出新的配方单。
由于香原料之间存在部分相似的性质,但又性能各异,此类方法创作的配方,在保持原配方的主要特征的同时,还能表现出新的特性。
申请人:湖南中烟工业有限责任公司
地址:410014 湖南省长沙市雨花区万家丽中路三段188号
国籍:CN
代理机构:长沙市融智专利事务所(普通合伙)
代理人:颜勇
更多信息请下载全文后查看。
kmeans的聚类算法
kmeans的聚类算法K-means是一种常见的聚类算法,它可以将数据集划分为K个簇,每个簇包含相似的数据点。
在本文中,我们将详细介绍K-means算法的原理、步骤和应用。
一、K-means算法原理K-means算法基于以下两个假设:1. 每个簇的中心是该簇内所有点的平均值。
2. 每个点都属于距离其最近的中心所在的簇。
基于这两个假设,K-means算法通过迭代寻找最佳中心来实现聚类。
具体来说,该算法包括以下步骤:二、K-means算法步骤1. 随机选择k个数据点作为初始质心。
2. 将每个数据点分配到距离其最近的质心所在的簇。
3. 计算每个簇内所有数据点的平均值,并将其作为新质心。
4. 重复步骤2和3直到质心不再变化或达到预定迭代次数。
三、K-means算法应用1. 数据挖掘:将大量数据分成几组可以帮助我们发现其中隐含的规律2. 图像分割:将图像分成几个部分,每个部分可以看做是一个簇,从而实现图像的分割。
3. 生物学:通过对生物数据进行聚类可以帮助我们理解生物之间的相似性和差异性。
四、K-means算法优缺点1. 优点:(1)简单易懂,易于实现。
(2)计算效率高,适用于大规模数据集。
(3)结果可解释性强。
2. 缺点:(1)需要预先设定簇数K。
(2)对初始质心的选择敏感,可能会陷入局部最优解。
(3)无法处理非球形簇和噪声数据。
五、K-means算法改进1. K-means++:改进了初始质心的选择方法,能够更好地避免陷入局部最优解。
2. Mini-batch K-means:通过随机抽样来加快计算速度,在保证精度的同时降低了计算复杂度。
K-means算法是一种常见的聚类算法,它通过迭代寻找最佳中心来实现聚类。
该算法应用广泛,但也存在一些缺点。
针对这些缺点,我们可以采用改进方法来提高其效果。
一种基于遗传算法的Kmeans聚类算法
一种基于遗传算法的K-means聚类算法一种基于遗传算法的K-means聚类算法摘要:传统K-means算法对初始聚类中心的选取和样本的输入顺序非常敏感,容易陷入局部最优。
针对上述问题,提出了一种基于遗传算法的K-means聚类算法GKA,将K-means算法的局部寻优能力与遗传算法的全局寻优能力相结合,通过多次选择、交叉、变异的遗传操作,最终得到最优的聚类数和初始质心集,克服了传统K-means 算法的局部性和对初始聚类中心的敏感性。
关键词:遗传算法;K-means;聚类聚类分析是一个无监督的学习过程,是指按照事物的某些属性将其聚集成类,使得簇间相似性尽量小,簇内相似性尽量大,实现对数据的分类[1]。
聚类分析是数据挖掘技术的重要组成部分,它既可以作为独立的数据挖掘工具来获取数据库中数据的分布情况,也可以作为其他数据挖掘算法的预处理步骤。
聚类分析已成为数据挖掘主要的研究领域,目前已被广泛应用于模式识别、图像处理、数据分析和客户关系管理等领域中。
K-means算法是聚类分析中一种基本的划分方法,因其算法简单、理论可靠、收敛速度快、能有效处理较大数据而被广泛应用,但传统的K-means算法对初始聚类中心敏感,容易受初始选定的聚类中心的影响而过早地收敛于局部最优解,因此亟需一种能克服上述缺点的全局优化算法。
遗传算法是模拟生物在自然环境中的遗传和进化过程而形成的一种自适应全局优化搜索算法。
在进化过程中进行的遗传操作包括编码、选择、交叉、变异和适者生存选择。
它以适应度函数为依据,通过对种群个体不断进行遗传操作实现种群个体一代代地优化并逐渐逼近最优解。
鉴于遗传算法的全局优化性,本文针对应用最为广泛的K-means方法的缺点,提出了一种基于遗传算法的K-means聚类算法GKA(Genetic K-means Algorithm),以克服传统K-means算法的局部性和对初始聚类中心的敏感性。
用遗传算法求解聚类问题,首先要解决三个问题:(1)如何将聚类问题的解编码到个体中;(2)如何构造适应度函数来度量每个个体对聚类问题的适应程度,即如果某个个体的编码代表良好的聚类结果,则其适应度就高;反之,其适应度就低。
kmeans聚类算法的算法流程
K-means聚类算法是一种经典的基于距离的聚类算法,它被广泛应用于数据挖掘、模式识别、图像分割等领域。
K-means算法通过不断迭代更新簇中心来实现数据点的聚类,其算法流程如下:1. 初始化:首先需要确定要将数据分成的簇的个数K,然后随机初始化K个簇中心,可以从数据集中随机选择K个样本作为初始簇中心。
2. 分配数据:对于每个数据点,计算它与各个簇中心的距离,将该数据点分配给距离最近的簇,并更新该数据点所属簇的信息。
3. 更新簇中心:计算每个簇中所有数据点的均值,将该均值作为新的簇中心,更新所有簇中心的位置。
4. 重复迭代:重复步骤2和步骤3,直到簇中心不再发生变化或者达到预定的迭代次数。
5. 输出结果:最终得到K个簇,每个簇包含一组数据点,形成了聚类结果。
K-means算法的优点在于简单易实现,时间复杂度低,适用于大规模数据;但也存在一些缺点,如对初始聚类中心敏感,对噪声和离裙点敏感,需要事先确定聚类个数K等。
K-means聚类算法是一种常用的聚类方法,通过迭代更新簇中心的方式逐步将数据点划分为不同的簇,实现数据的聚类分析。
通过对算法流程的详细了解,可以更好地应用K-means算法解决实际问题。
K-means算法是一种非常经典的聚类算法,它在数据挖掘和机器学习领域有着广泛的应用。
在实际问题中,K-means算法可以帮助我们对数据进行分组和分类,从而更好地理解数据的内在规律,为我们提供更准确的数据分析和预测。
接下来,我们将对K-means聚类算法的一些关键要点进行探讨,包括算法的优化、应用场景、以及与其他聚类算法的比较等方面。
1. 算法的优化:在实际应用中,K-means算法可能会受到初始簇中心的选择和迭代次数的影响,容易收敛到局部最优解。
有一些改进的方法可以用来优化K-means算法,例如K-means++算法通过改进初始簇中心的选择方式,来减少算法收敛到局部最优解的可能性;另外,Batch K-means算法通过批量更新簇中心的方式来加快算法的收敛速度;而Distributed K-means算法则是针对大规模数据集,通过并行计算的方式来提高算法的效率。
基于Hadoop平台的K-means聚类算法
基于Hadoop平台的K-means聚类算法刘宝龙;苏金【期刊名称】《计算机系统应用》【年(卷),期】2017(026)006【摘要】传统的K-means算法虽然具有很多优点,但聚类准则函数对簇密度不均的数据集分类效果较差.文中在加权标准差准则函数的基础之上,增加了收敛性判定,并在Hadoop平台上提出了一种基于MapReduce编程思想设计与优化的K-means并行算法.与传统的K-means算法相比,设计的并行算法在聚类结果的准确性、加速比、扩展性、收敛性等方面都有显著的提高,降低了因簇密度不均引起误分的概率,提高了算法的聚类精度,并且数据规模越大、节点越多,优化的效果就越明显.%Although there are many advantages in traditional K-means algorithm, the clustering criterion function has poor efficiency on classification of the data set with uneven cluster density. On the basis of weighted standard deviation criterion function, this paper proposes a K-means parallel algorithm which is designed and optimized based on MapReduce programming. And it also increases the convergence judgment. Compared with the traditional K-means algorithm, the designed parallel algorithm has a significant improvement in the aspects of accuracy, speedup ratio, scalability and the convergence of clustering results. It also reduces the probability of misclassification caused by the uneven cluster density, and improves the clustering accuracy of the algorithm. What's more, theoptimization effect will be more obvious when it deals with lager data size and more nodes.【总页数】5页(P182-186)【作者】刘宝龙;苏金【作者单位】西安工业大学计算机科学与工程学院, 西安 710021;西安工业大学计算机科学与工程学院, 西安 710021【正文语种】中文【相关文献】1.基于Hadoop平台的K-means聚类算法优化研究 [J], 卢胜宇;王静宇;张晓琳;高俊峰2.基于云计算Hadoop平台下K-Means聚类方法的研究与改进 [J], 张爱科3.基于Hadoop平台的聚类K-means算法的研究 [J], 汪一百4.基于Hadoop平台的K-means聚类算法并行化改进研究 [J], 禤世丽;刘建明5.基于Hadoop平台的一种改进K-means文本聚类算法 [J], 潘俊辉;王辉;张强;王浩畅因版权原因,仅展示原文概要,查看原文内容请购买。
K-means聚类算法
K-means聚类算法1. 概述K-means聚类算法也称k均值聚类算法,是集简单和经典于⼀⾝的基于距离的聚类算法。
它采⽤距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越⼤。
该算法认为类簇是由距离靠近的对象组成的,因此把得到紧凑且独⽴的簇作为最终⽬标。
2. 算法核⼼思想K-means聚类算法是⼀种迭代求解的聚类分析算法,其步骤是随机选取K个对象作为初始的聚类中⼼,然后计算每个对象与各个种⼦聚类中⼼之间的距离,把每个对象分配给距离它最近的聚类中⼼。
聚类中⼼以及分配给它们的对象就代表⼀个聚类。
每分配⼀个样本,聚类的聚类中⼼会根据聚类中现有的对象被重新计算。
这个过程将不断重复直到满⾜某个终⽌条件。
终⽌条件可以是没有(或最⼩数⽬)对象被重新分配给不同的聚类,没有(或最⼩数⽬)聚类中⼼再发⽣变化,误差平⽅和局部最⼩。
3. 算法实现步骤1、⾸先确定⼀个k值,即我们希望将数据集经过聚类得到k个集合。
2、从数据集中随机选择k个数据点作为质⼼。
3、对数据集中每⼀个点,计算其与每⼀个质⼼的距离(如欧式距离),离哪个质⼼近,就划分到那个质⼼所属的集合。
4、把所有数据归好集合后,⼀共有k个集合。
然后重新计算每个集合的质⼼。
5、如果新计算出来的质⼼和原来的质⼼之间的距离⼩于某⼀个设置的阈值(表⽰重新计算的质⼼的位置变化不⼤,趋于稳定,或者说收敛),我们可以认为聚类已经达到期望的结果,算法终⽌。
6、如果新质⼼和原质⼼距离变化很⼤,需要迭代3~5步骤。
4. 算法步骤图解上图a表达了初始的数据集,假设k=2。
在图b中,我们随机选择了两个k类所对应的类别质⼼,即图中的红⾊质⼼和蓝⾊质⼼,然后分别求样本中所有点到这两个质⼼的距离,并标记每个样本的类别为和该样本距离最⼩的质⼼的类别,如图c所⽰,经过计算样本和红⾊质⼼和蓝⾊质⼼的距离,我们得到了所有样本点的第⼀轮迭代后的类别。
此时我们对我们当前标记为红⾊和蓝⾊的点分别求其新的质⼼,如图d所⽰,新的红⾊质⼼和蓝⾊质⼼的位置已经发⽣了变动。
请简述k-means算法的主要步骤、及其优缺点。
请简述k-means算法的主要步骤、及其优缺点。
K-means算法是一种经典的聚类算法,用于将样本数据集划分为K个不相交的聚类。
这种算法的主要步骤包括初始化聚类中心、计算样本与聚类中心的距离、更新聚类中心、重复计算直至收敛。
其优点包括算法简单高效、可扩展性强,但也存在缺点,如初始聚类中心的选择对结果影响较大。
下面将详细介绍K-means算法的主要步骤及其优缺点。
1.初始化聚类中心:首先,需要确定聚类数K,并随机选择K个样本作为初始聚类中心。
这些初始聚类中心代表了K个聚类的质心。
2.计算样本与聚类中心的距离:对于每个样本,计算其与每个聚类中心的距离,并将样本分配到与其距离最近的聚类中心所对应的类别中。
距离通常采用欧氏距离或曼哈顿距离来衡量。
3.更新聚类中心:对于每个聚类,计算该聚类内所有样本的均值,并将均值作为新的聚类中心。
这样,每个聚类的中心会根据当前样本的分配情况得到更新。
4.重复计算直至收敛:重复步骤2和步骤3,直到聚类中心不再发生变化,即算法收敛。
此时,得到K个聚类,每个样本属于其中一个聚类。
算法的收敛条件可以是聚类中心不再发生明显变化,或者达到预定义的最大迭代次数。
K-means算法的优点如下:1.简单高效:K-means算法是一种基于迭代的聚类算法,具有简单的操作步骤和高效的计算性能。
算法复杂度为O(tkn),其中t为迭代次数,k为聚类数,n为样本数。
2.可扩展性强:K-means算法适用于大规模数据集,可以通过增加计算资源来提高算法的计算速度。
3.容易理解和实现:K-means算法基于距离度量进行样本分类,原理直观且易于理解。
其算法流程简单,可以方便地实现。
4.聚类结果可解释性强:K-means算法得到的聚类结果通常可以较好地解释数据特征,对于数据的分析和可视化具有一定的帮助。
K-means算法的缺点如下:1.对初始聚类中心的选择敏感:初始聚类中心的选择会对最终的聚类结果产生较大影响。
基于局部搜索机制的K-Means聚类算法
算法 。该算法对 KMen 收敛 后的结果使用局部搜索来使其跳 出局部极值点 ,进而再次迭代求优 。同时对局 部搜索 的结果使 用 KMe s - as :  ̄ a n 算法 使其尽快 到达一 个局部极 值点 。理论分 析证 明了算法 的可 行性 和有效性 ,而在标 准文本集 上 的文 本聚类 实验表 明,相对于 传统 的
S UN e h n , i h n , Yu — e g LIZh - e g HE - a s Pi i n l
(co l f mp tr cec n eh oo yTaj iesyT aj 0 0 2 S h o o Co ue i ead 0 7 ) S n n t n
维普资讯
第 3 卷 第 n 期 4
11 4 1. o 3
・
计
算
机
工
程
20 08年 6 月
J n 0 8 u e2 0
No.l 1
Co p t rEn i e rng m u e gn e i
博士论 文 ・
文章缡号:1 0-48081-05- 文献 0 -32(0)-01-1 0. - 2 1 - -3 - 4 标识码lA
K Me s - a 算法 ,该算 法改进 了聚 类结果 的质量。 n
关健词 : - as K Me 聚类算法 ;局部搜索机 制 ;K S 法;文 本聚类 n ML 算
一种基于K—means的自适应聚类算法的研究
科技 国向导
21年第0 期 02 2
一
种基于 K— a s 自适应聚类算法的研究 men 的
唐 燕雯 ( 西工 商职 业 技 术 学 院 广 西 广 南宁 500) 3 0 3
【 要】 摘 聚类(1t i 是数据挖掘 中的一种主要技 术, — en 算法是一种重要的经典的 划分 方法, 算法在 K值的确定、 cu en sr K m as 但该 质心的选
取 、 维数 的依赖上存在 问题 , 对 本文提 出了一种改进的 自适应算法 , 用于解决 K值的确定、 质心的选取 等问题 。 聚类效果较好。 【 关键词 】 聚;— e 自 K ma m; 适应; 算法 ・
好的聚类结果应该是 同一类间的各数据对象 间相似度 大 . 同 而不 0引言 . DI 分母越大 聚类(1 t i ) 数据挖掘 中的一种 主要 技术 . CU e n ; S r gl  ̄ 是按 照一 定要求 类之 间的相似度小 . B 能够 满足这个条件 ,即分 子越小 . D I 则代表各聚类 内数据相似度大而类 间的相似度小 , 和规律对 一组个 体进行 区分和分类 的过程 . 主要 目的是使的属于 同一 时, B 的值越小 . 类 别的个体之间的距离尽可能的小 . 同类别 上的个 体间的距离尽 从 这个值可以确定通过 D m xm n (l ) ( , } 而不 = a {i( e , , c j , d J d 2 ) 查找 到的 x 是否 j 可 能 的 大 .聚类 属 于无 监 督 分 类 的范 畴 。划 分 聚 类 (a io i 是最佳中心, P r tnn ti g 既而确定最佳的聚类数 目。 M tos e d) h 是聚类 中的重要方法 . 指对于一个 给定包含 n 对象或元组 个 找到新 聚类 中心 x. 聚类 . i 进行 重新计算聚类的中心。 目前形成 对 的数据库 .通过基于划分 的方法 由用户 给定 构建数 据的 k 个划分 . 每 的 k个 聚类 .计算 其 D I 前 一次 计 算 的 D I 行 比较 .如果 B和 B进 个 划分表示 一个簇 . 并且 k = <n D I w D I d 则 x 可 以作 为聚类 中心 . Bn < B o . j e l 同时 k 原来 的基 础上加 在 1K- . mea s算 法 n 1 否则算法终止 。 . K m as 法是重要 的划 分方法 , J .aQ en 出 . — en 算 由 .M cue 提 B 具有广 ( 如果找到 的数据对象是 中心 , 4 ) 则计算 D m x i de , ,( , = a { n ( j d 2 m ( 1) e 泛 的影响力 。其基本原理是 , 首先指定聚类 数 k从含有 n , 个对象 的数 d 3j j ’ 12 …, 。 ( , ) j= , , n 存在这样的数据对象 , 到( 。依次类 推直 e ), 转 3 ) 据集合 中随机地选 择 k 个对象作 为一个簇 的初始平均值或 中心。 计算 到跳 出循环 剩余 的各个对象 到这些簇 中心 的距离 . 然后根据其 与各个 簇中心的距 从确定 的过 程可 以看 出. 少了人为 的干预 . 免了由于参数设 减 避 离. 将它赋给最 近的簇 。然后重新计算每个簇 的平均值作 为该簇 新的 定不 当对聚类结果造成的影响 聚类 中心 . 相邻 的聚类 中心没有任何变化 , 如果 则样本 调整 结束 , 聚类 23 -对改进 k m a s 法的描述 — en 算
一种高效的K-means聚类算法
第 2 期 5
S I N E&T C N L G F R T O CE C E H O O YI O MA I N NO高校讲来自0 科技信息 一
种高效的 K men 聚类算法 — as
王 娟
( 州工 业学 院软件 工程 系 兰
甘肃
兰州
7 05 ) 3 0 0
【 要】 摘 聚类算法作 为一种重要的数据挖 掘的方法, 能找到样本 中相对集 中的 区域。 文分析 了一些常用聚类算法 以及局限性 , 本 并且针对 K m as — en 算法 中 始点的选择 , 初 讨论 了一种改进的 K m a s — en 算法的实现过程 , 以期得到 比较理想的聚类效果。 【 关键词】 据挖掘 ; 数 聚类 ;— en K m as
数据挖 掘( a nn ) . 人工智能领域 , D t Miigt 在 a ” 又被称为数据库 中的 所有对象 的均值 )不断重复这一过程直到聚类 中心不 变为止 。k个聚 : 知识发现 ( nw eg i oe a b s, D )通过分析数据库 中 类具 有以下特点 : 聚类本 身尽可能 的紧凑 , K o l e s vr i D t aeK D , d D c yn a 各 而各 聚类之间尽可能 的 的海量数据 .找 出其 中的规律 , . 挖掘 出来 的知识可用 于信 息管理 、 决 分 开。 策支持 、 过程控制等方 面。 聚类算法作为数据挖掘的重要方法 之一 , 越 2 改进 的 K Ⅱen 算法描述 . 2 一l s a 来越受到人们的重视。聚类 ( l t ) 析是由若 干模式 (a e ) Cu e 分 sr P t r 组成 tn 聚类 的初始点选择对 k m a s - en 聚类算 法有很大影响 通常情况 初 因此聚类 的结果也常常是局部最优 的 的. 常. 通 模式 是一个度 量 ( esr et的向量 , M a e n) um 或者是 多维空 间中 下 . 始点往往是 随机选择 的. 的一个点 聚类 分析以相 似性为基础 . 在一个聚类 中的模式之 间比不 因而如果更合理 的选择初 始点 . 那么 聚类 结果也会更 加合理 . 同时聚 在 同一聚类 中的模式之间具有更 多的相似性 。 类的速度也会会很 大提高 。为 了保证初始点是分散而不是密 集的 , 因 本为提 出了一种改进 的 K m a s — e 算法 , n 该算法具有较高的效率。 而引入了距离概念 : , 了消除孤立点对聚类结果 的影 响 , 同时 为 引入密 度的概念 以任意一个点作为中心 . 正数 r 作为半径 . 就能得到一个邻 1 常用 聚 类 算 法刚 及 其 局 限 性 域. 落入邻域 内的其 它点的个数就是该 点的密度 . 选择密度足够 大的 点作为初始聚类 中心 那些密度 太小 的点就可 以看作 是孤 立点(‘ ‘ 脏” 11 划 分 法 (atinn to s . p rt igme d1 io h 。根据密度选取初始点 的具体方法如下 : 给定一个有 N个 元组或者纪录的数据集 . 划分法构造 K个分组 . 点 ) 。 是用来计 算密度 的半径 , d是两个聚类 中心 每 一个分组就代表一个 聚类 , < 。而且这 K个 分组满足下列条 件 : 221 设置正数 r和 d r KN .. 通常 r 小于 d () 1 每一个分组至少包含一个数据纪 录 ; )每一个数据 纪录属于且 的初始距 离 . ( 2 2 为半径计算每个点的密度 . 选择 密度最 大的点作为第 1 个 仅属 于一个分组 ; 对于给定 的 K 算法首先给 出一个初始 的分 组方 法 . 2 . 以 r , .2 以后通过反 复迭代 的方法来改变分组 . 每一次改进之后的分组方案 聚类 中心 。然后计算这个 中心与密度 为第 2大的点两 者之间的距离 . 使 . 脏 点 不考虑这个点 。 反之选择 这个 点为第 2 都较 前一 次好 。使 用这 个基 本思 想 的算 法有 : — E N K M A S算法 、 ~ 如果距离 小于 d 则 为“ ” , K 个 中心 。然后挑选密度为第 3 大的点 , 它与前 两个 聚类 中心 的距 计算 ME O D D I S算法 、 L RA S算法。 CA N 离 。如果距 离小 于 d 不考虑 , , 反之 , 选它作为第 3 中心 以此类推 个 l2 层 次 法(i acia mehd) _ he rhcl tos r 这样初始聚类 中心之间的距 离就相 对的加 大了 . 因此也就避免 了 这种方 法对 给定 的数据集进行层次似的分解 . 直到某种条件满足 这样处理 使中心点的初始输 为止。 具体又可分为“ 底 向上 ” 自 向下 ” 自 和“ 顶 两种方案。 例如在“ 自底 初始 中心太靠近而影响聚类结果 。另外 , 因而算 法对输入顺 序不敏感 . 会得 到更好 向上” 方案中 . 时每一个数据纪录都组成一个单独的组 . 初始 在接下来 入顺序按 照密度 大小排列 . 的迭代中 . 它把那些相互邻 近的组合并成一个 组 . 直到所有 的记录组 的聚类结果 但半径 r 和距离 d 都是 经验 值 , 对于距离 d 假定它是半径 r . 的倍 成一个分组或者某个条件满足为止。代表算法有 : I C BR H算法 、 U E C R 数, 对于半径 r 的选择 , 用一种 自适应选择最佳密度半 径的方法 通常 算法 、HA L O C ME E N算法等。 人们期望 的是最大的密度应该 等于或小 于一个 类中样本点的个数 . 所 1 基 于 密度 的方  ̄ (e sy b sdm to s _ 3 dni — ae ehd1 t n为所有样 本点的 这个 方法 的指导思想就是 , 只要一个 区域中的点的密度大过某个 以我们用 n除以 k得 到一个类 中的近似平均点数 . 乘 例如 0 或 0 )这样最大密度锁定在 0 * / 到 . 8 ., 5 . nk 8 阈值 , 就把它加到与之相近 的聚类 中去 。代 表算 法有 : B C N算法 、 个数 , 以一个系数( D SA O5 n k之间。方法 如下 : .* / O TC 算法 、 E C U P IS D N L E算法等 1 基 于 网格 的方 法 ( d b sdmehd1 . 4 — ae tos 赋给 r 一个初始值 . 如果 最大密度大 于 08n k 则 r 去一个定 . /. 减 如 . ) 再次计算最大密度 , 0 如果最大密度小于 O * / . r . nk 则 加上 5 这种方法首先将数据空 间划分成 为有 限个单元 (e )的网格结 长( O 5。 cl 1 然后再计算最大密度 , 这样找到 r . 值 它对应的最大密度在 构所 有 的处理都是 以单个 的单元为对象 的。这 么处理 的一个 突出的 个步长 , 8 . /之 * 优点就 是 处理速 度很 快 。代表 算法 有 :TN S IG算 法 、 LQ E算法 、 0 */ 到 05n k 间。相应 的可以进一步确定最佳 的聚类初始点 C IU . nk 23 改进 的 K men 算法性能分析 . — as WA E C U T R算法 。 V — L SE 实验表 明, 在运用误差平方 和准则 函数测 度聚类效果 时 . 最佳聚 1 基 于模 型 的方 法 ( d lb sdme o s . 5。 moe— ae t d1 h 基于模 型的方法给每一个聚类假定一个模 型 . 然后去寻找能个很 类结果对应于 目标函数的极值 点 . 由于 目 函数存 在着许多局部极小 标 而算法 的每 一步都是沿着 目 函数减小 的方 向进行 . 标 若初 始化落 好 的满足这个模型 的数据集 。通常有两种尝试方 向 : 统计的方案和神 点 , 经 网 络 的方 案 在 了一个局部极小点附近 , 就会造 成算法在 局部极 小处收敛 。因此初 而难以获得全局最优 上述这些算法 的缺点在于对样本数据的分布进行了一定的假设 . 始 聚类 中心 的随机选取可能会 陷入局部 最优解 . 针对这种情况 , 采用 了基于密度的处 理方法来获得初始 聚类 中心 . 处理大数 据集 和高维数据集 。 尤其是对处理存在孤立点的大文档集时 解 。 并取得 了较优的聚类效果 不够有效 K m as - en 算法对于文档 中的孤立点很敏感 , 这类 K m as ~ en 文档将 2 改进 的 K me n 算法描述 — as 对 聚类结果产生较大的影响。 而初 始聚类 中心是 基于密度 的选取方法 的聚类算法对存在孤立点的文档集能得到较好 的聚类结果 21 K men 算 法描 述 . — as
聚类kmeans算法
聚类kmeans算法聚类kmeans算法是一种常用的数据挖掘算法,它利用机器学习技术进行分类,可以有效解决大数据环境中的数据挖掘问题。
这种算法具有较高的精度和准确性,因此被广泛应用于各种环境中。
k-means聚类算法的基本原理是将数据点分成K个聚类,每一个聚类都与聚类中心具有最短的距离,即该聚类中心所形成的簇是所有数据点中距离最近的。
k-means算法可以自动从原始输入数据中挖掘出有价值的信息,是进行数据聚类分析的有力工具。
k-means算法的核心是聚类中心的改变,它将数据分为K个类。
该算法的运行过程包括:(1)确定聚类中心;(2)将数据集分组;(3)求出每个聚类的损失函数;(4)设置停止迭代的条件。
在每一次迭代中,算法根据损失函数更新聚类中心,直到最优聚类中心出现或者聚类中心不再变化,聚类结果即被输出。
由于k-means算法的算法精度依赖于聚类中心的选择,因此先进的变体算法添加了许多改进措施来提高聚类的准确性,也增强了聚类中心的可靠性。
改进的k-means算法还可以避免聚类中心收敛所需时间的过长,从而使大规模数据示例聚类的效率提高。
此外,该算法对超参数的选择和调节提供了更多的灵活性,它可以更好地满足多种类型的实际应用需求。
目前,k-means聚类算法广泛应用于不同领域,如市场营销、推荐系统、影响力分析、社会网络分析、计算机视觉等。
通过使用k-means 算法,可以有效地进行分类,从而提取有价值的信息,提升数据处理的准确性和效率,节省人力成本。
然而,k-means算法也存在一些缺点。
首先,该算法的计算复杂度较高,且依赖于聚类中心的选取,容易出现局部最优解,从而导致聚类精度不高。
其次,由于k-means算法的归纳模型有一定的局限性,因此不能处理无界和多维数据集。
最后,该算法只适用于某些特定的场景,并不能满足所有数据挖掘应用中的要求。
未来,k-means算法仍然将受到更多的关注,未来的研究将继续改进该算法,提升其精度和效率,使之能更好地满足实际应用的要求。
一种优化的K—means聚类中心算法研究
基 于 密度方 法 的改进 中主 要考虑 高 密度 、远 距 离初
始点 的选择 而忽 略簇 内相似 度 以及迭 代波 动性 结果
的分析 。在 实际 应用 中考虑 样本 密度 特点 与聚 类 点的 有效结 合找 到合适 的 初始聚 类 中心 ,降低传 统
第3 卷 第4 4 期
2 1 — ( ) [9 02 4下 11
务l l 出 I 5
质 ,在文 献 【, , , 】 出的选择 高 密度点作 为初 5689 提 始 聚 类 中心 方法 的基 础 上 进 行 改 进 ,提 出 以簇 内 相似 度 最 高 的具 有 高 密 度分 布 的点 为 聚 类 中 心选 择 算 法 ,通 过 评 价 函数 即 聚 类 问 距 、聚 类 内 距和 簇 内个数 分布 差异 度得 到聚类 最优 解。
密度 、 网格 、模 型和 约 束聚 类 算法 。K men 是 基 — as
于划分 的 聚类算 法 ,它以平 方误 差作 为衡 量聚 类质 量 的 目标 准则 函数 。通 过 随机选 择 k个 初 始聚 类 中
f ∑( 脚 P ) 2
=
1 P∈ c,
心 ,计 算每 个数 据对 象与 聚类 中心 的距离 ,将数 据 对象划 分到 距离 中心 最近 的簇 ,再计 算 、调整 聚类
21 改进 的初 始聚类 中心 选择步 骤 . 以 样 本 数 据 表 ( i 为 例 ,k 3时 ,其 初 始 表 ) =
聚 类 中心选择 方法 步骤 如表 I 所示 。
表 1 样本数据表
序号 属性 1 属性2 序号 属性 I 属性2 序号 属性I 属性2
1 2 l 1 1 2 6 7 4 5 5 4 l 1 1 2 I O 9 3 3
一种局部概率引导的优化k-means++算法
第57卷 第6期吉林大学学报(理学版)V o l .57 N o .6 2019年11月J o u r n a l o f J i l i nU n i v e r s i t y (S c i e n c eE d i t i o n )N o v 2019d o i :10.13413/j .c n k i .jd x b l x b .2019159一种局部概率引导的优化K -me a n s ++算法王海燕1,2,崔文超3,许佩迪3,李 闯3(1.长春大学计算机科学技术学院,长春130022;2.吉林大学理论化学研究所,长春130021;3.吉林师范大学计算机学院,吉林四平136000)摘要:针对K -m e a n s ++算法选取初始聚类中心计算误差平方和时,实验次数对误差平方影响不准确的问题,提出一种P K -m e a n s ++算法.结果表明,该算法在进行分散数据聚类时,在同一K 值情形下,聚类后的误差平方和较原K -m e a n s ++算法更稳定,从而更好地保证了随机实验取值的稳定性.关键词:聚类分析;K -m e a n s ++算法;概率;误差平方和中图分类号:T P 39 文献标志码:A 文章编号:1671-5489(2019)06-1431-06A nO p t i m i z e d K -m e a n s ++A l g o r i t h m G u i d e db y L o c a l P r o b a b i l i t yWA N G H a i y a n 1,2,C U IW e n c h a o 3,X U P e i d i 3,L IC h u a n g 3(1.C o l l e g e o f C o m p u t e rS c i e n c e a n dT e c h n o l o g y ,C h a n g c h u nU n i v e r s i t y ,C h a n gc h u n 130022,C h i n a ;2.I n s t i t u t e o f T h e o r e t i c a lC h e m i s t r y ,J i l i nU n i v e r s i t y ,C h a n g c h u n 130021,C h i n a ;3.C o l l e g e o f C o m p u t e r ,J i l i nN o r m a lU n i v e r s i t y ,S i p i n g 136000,J i l i nP r o v i n c e ,C h i n a )A b s t r a c t :A i m i n g a t t h e p r o b l e mt h a t t h e n u m b e r o f e x p e r i m e n t h ad a n i n a c c u r a te ef f e c t o n t h e s q u a r e o f e r r o r sw h e n t h e K -m e a n s ++a lg o r i th m w a s u s e d t o s e l e c t t h ei n i t i a l c l u s t e r i n g c e n t e r t o c a l c u l a t e t h e s u m s q u a r e de r r o r ,w e p r o p o s e da P K -m e a n s ++a l go r i t h m.T h er e s u l t ss h o wt h a tt h es u m s q u a r e d e r r o r a f t e r c l u s t e r i n g i sm o r e s t a b l e t h a n t h e o r i g i n a l K -m e a n s ++a l g o r i t h mu n d e r t h e s a m e K v a l u ew h e n t h e a l g o r i t h mc l u s t e r s t h e s c a t t e r e d d a t a ,s o t h e s t a b i l i t y o f r a n d o me x pe r i m e n t v a l u e i s b e t t e r g u a r a n t e e d .K e y w o r d s :c l u s t e r i n g a n a l y s i s ;K -m e a n s ++a l g o r i t h m ;p r o b a b i l i t y ;s u ms q u a r e d e r r o r 收稿日期:2019-04-28.第一作者简介:王海燕(1980 ),女,汉族,博士,副教授,从事计算化学㊁约束程序设计和约束求解的研究,E -m a i l :j l s d w h y _0820@s i n a .c n .基金项目:国家自然科学基金(批准号:21473069)㊁吉林省教育厅 十三五 科学规划项目(批准号:J J K H 20191000K J )和吉林师范大学博士启动项目(批准号:2013018).1 引言与预备知识聚类分析(c l u s t e r a n a l y s i s )[1]又称群分析,是研究分类问题的一种统计分析方法,是数据挖掘领域中重要的无监督机器学习方法.聚类算法用途广泛,如区分消费群体㊁获取消费趋势㊁舆情分析及帮助市政规划等.常见的聚类算法有划分法㊁层次法㊁密度法㊁图论法㊁网格法和模型法等,其中划分法应用广泛.K -m e a n s 聚类是经典的划分聚类算法,具有方法简单㊁效率高的特点.随着K -m e a n s 算法的广泛应用,其缺陷逐渐凸显[2]:1)聚类中心数目K 需要在聚类分析前确定,而这在实际应用中很难估计;2)初始聚类中心需要人为选取,而不同的初始聚类可能导致不同的聚类2341吉林大学学报(理学版)第57卷结果.针对K-m e a n s算法的不足,目前已有许多改进算法:成卫青等[3]基于数据实例间的最大最小距离选取初始聚类中心,基于误差平方和(S S E)选择相对最稀疏的簇分裂,并根据S S E变化趋势停止簇分裂从而自动确定簇数;蒋丽等[4]提出了一种改进的K-m e a n s聚类算法,先根据类簇指标确定需要聚类的个数K,再采用基于密度的思想,实验证明改进后的算法比原K-m e a n s聚类算法准确性更高;针对第二项不足,周爱武等[5]通过基于评价距离确定初始聚类中心,优化后的算法针对存在孤立点的数据效果明显;G u[6]采用减法聚类的算法确定初始聚类中心;鲍雷[7]针对传统K-m e a n s聚类算法在数据聚类分析时受初始聚类中心的影响,提出了将遗传算法嵌入到K-m e a n s算法中的混合式聚类算法. K-m e a n s++是一种针对K-m e a n s算法第二类不足提出的优化算法[8].在K-m e a n s算法中,初始中心是以随机方式产生的,而K-m e a n s++算法则是在选取初始中心前对所有的数据进行一次计算,使选择的初始聚类中心间的相互距离尽可能远,以减少计算的过程量.如果随机产生的中心点过于相似,则会导致需要多次迭代才能将聚类划分开.而如果选择的初始中心点距离较大,则其属于同一个聚簇的可能性极小,使得聚类在最开始时就能很好地分开,因此计算量也会相应减少.假设数据集合X={x1,x2, ,x n},聚类数目为K,D(x)表示从数据点到已选取的最近聚类中心的最短距离. K-m e a n s++算法工作流程如下:步骤1)从数据集合X中随机取一点作为第一个聚类中心c1;步骤2)通过某种特定方式,在数据集合X中选取x作为下一个聚类中心c i;步骤3)重复步骤2),直到选取K个聚类中心;步骤4)继续使用标准K-m e a n s算法进行下一步计算.在对K-m e a n s++算法研究的过程中,工作流程中步骤2)选取初始聚类中心点的特定方式有很多种,最经典的主要有以下几种:1)根据P(x j)=D(x j)2ðx jɪθc e n t e r x D(x j)2最大时所对应的向量作为新的簇中心[9];2)计算每个数据样本的密度,并按密度大小排序,将密度最大的数据样本点与其最接近样本点的中点作为初始聚类中心,最后使用圆域进行划分[10];3)先选取一个种子点,再计算检测节点与最近种子节点间的距离D(x i,y i),求取s u m(D(x i,y i)),再取可以落在s u m(D(x i,y i))中的随机值r a n d o m,计算r a n d o m-=D(x i,y i),直至r a n d o m<0,此时的点即为新的簇中心点,重复操作直到全部选取出K个种子节点[11].但K-m e a n s++算法初始聚类中心选取方式计算出的误差平方和值上下波动明显,会出现误差平方和过大或过小的情形.为了改善该不足,本文提出一种局部概率引导的P K-m e a n s++算法,借助局部概率对选取初始聚类中心点的方式进行改进.为说明P K-m e a n s++算法的优势,本文将改进算法应用在具有代表性的分散数据集上,在针对同一K值的情形下聚类时,聚类后的误差平方和较原K-m e a n s++算法更稳定,保证了随机实验取值的稳定性.2K-m e a n s++算法优化2.1问题描述在K-m e a n s++算法3种选取初始聚类中心方式中,最常见的是最后一种.但在使用第三种方式进行多次聚类实验时,误差平方和间有明显波动.即常用的K-m e a n s++算法得到的误差平方和受实验随机性的影响较大.本文以西瓜数据集4.0为例进行聚类.首先,将数据集的聚类个数设为4,然后使用常见的选取初始聚类中心的方式将西瓜数据集4.0的30个二维数据向量进行K-m e a n s++聚类.图1为西瓜数据集4.0误差平方和曲线.由图1可见,误差平方和的取值不稳定,上下波动较明显,最大值超过0.45,最小值接近0.25,这种波动会严重影响聚类的精度和速度.图1 西瓜数据集4.0误差平方和曲线F i g .1 C u r v e o f s u ms qu a r e d e r r o r o n w a t e r m e l o nd a t a s e t 4.02.2 P K -m e a n s ++算法为进一步缩小误差㊁减少工作量,本文针对K -m e a n s ++算法在误差平方和取值时遇到的问题进行优化.主要思想是通过K -m e a n s ++算法计算每个点所占的概率区间,距离越远的点在(0,1)中占有概率段比例越大,随机取到该区间的概率就越大.假设将输入设置为:一个包含n 个对象的集合D ;聚类个数K ;距离数组D [n ],D [i ]表示第i 个点到最近簇中心的距离;概率数组P [n ];概率点数组P K [n ].将输出设置为K 个聚类中心点集合.则P K -m e a n s ++算法步骤如下:1)在数组中,随机取一点,作为第一个簇中心点;2)迭代集合D 中所有的点,计算所有点到最近簇中心点的距离,并将数据记录到距离数组中,记为D [1],D [2], ,D [n ];3)将所有的D [i ](i =1,2, ,n )叠加,得到距离和S u m (D [n ]),并分别计算D [i ]在S u m (D [n ])中的概率,记为P [i ];将概率P [i ]通过概率段的形式在(0,1)中表示,将概率段的起始点存入数组P K 中;4)取随机数r P (0<r P <1)所在区间的一个点作为下一个聚类中心点;5)重复步骤2)~步骤4),直至K 个聚类初始中心全部选出;6)继续使用标准的K -m e a n s 算法进行下一步计算.以第一个初始聚类中心下标为4的聚类为例,将各数据点到第一个聚类中心的距离概率表示在图2 数据组P 和数据组P KF i g .2 D a t a g r o u p P a n dd a t a g r o u p PK (0,1)区间上,结果如图2所示.其中,数据组P 存储的各数据表示各点到第一个初始聚类中心距离的概率段,其中P [4]=0.数据组P K 存储的是概率段在(0,1)内的实际点数据,若随机取的r P 值在区间(P K [n -1],P K [n ]]内,则把第n 个数据点作为下一个聚类中心.3 实 验3.1 数据集图3 20个(1,5)区间的随机点F i g .3 T w e n t y r a n d o m p o i n t s o f z o n e (1,5)为了验证算法P K -m e a n s ++在误差平方和方面的优势,本文将数据集合锁定在分散数据集上,为保证是相对分散的数据集,随机取5ˑ5正方形(横坐标x ɪ(0,5),纵坐标y ɪ(0,5))内的20个二维数据点作为数据集Ⅰ,数据点可视化效果如图3所示.随机取10ˑ10正方形内的20个二维数据点作为数据集Ⅱ,数据点可视化效果如图4所示;随机取10ˑ10正方形内的50个二维数据点作为数据集Ⅲ,数据点可视化效果如图5所示.由图3~图5可见,研究选取的数据非常分散.3.2 实验结果分析在上述选取分散数据的基础上,为充分说明P K -m e a n s++算法的优越性,下面分别对K -m e a n s ++算法和P K -m e a n s ++算法进行多次3341 第6期 王海燕,等:一种局部概率引导的优化K -m e a n s ++算法图4 20个(1,10)区间的随机点F i g .4 T w e n t y r a n d o m p o i n t s o f z o n e (1,10)图5 50个(1,10)区间的随机点F i g .5 F i f t y r a n d o m p o i n t s o f z o n e (1,10)对比聚类实验.参考文献[12],实验环境为:I n t e l (R )C o r e T M i 5-7200处理器,主频为2.50G H z ,内存为8.00G B .分别做10次实验,记录10次实验的误差平方和,并针对不同的数据集给出两种算法的对比曲线.选取数据集Ⅰ,对比K -m e a n s ++和P K -m e a n s ++算法聚类计算得出的误差平方和,结果如图6所示.由图6可见,P K -m e a n s ++算法计算得出的误差平方和变化较平稳,而原始K -m e a n s ++算法计算的误差平方和上下浮动相对较大.这是因为K -m e a n s ++算法先随机选取一个小于距离和的数,然后将随机数作为被减数依次做减距离操作,最后取差小于0时的点作为下一个初始聚类点,而P K -m e a n s ++算法是在距离概率(0,1)内取点.在聚类较明显的数据集中这两种算法对误差平方和都无太大影响.说明P K -m e a n s ++算法对聚类效果较明显的数据集聚类后不会产生太大影响.而对较分散的数据集,数据点之间的距离较平均,距离差异较小,P K -m e a n s ++算法随机取数的范围较K -m e a n s ++取数的范围小,取数的波动性较小导致取点的波动性较小,每次实验取点的结果较接近,从而保证了误差平方和的上下波动较小,进而呈现一种稳定的状态.为进一步证明P K -m e a n s ++算法的优势,本文将实验规模扩大到数据集Ⅱ和数据集Ⅲ上,K -m e a n s ++算法和P K -m e a n s ++算法计算得出的误差平方和曲线分别如图7和图8所示.由图7和图8可见,P K -m e a n s ++算法在平稳程度上仍有绝对优势,而K -m e a n s ++算法波动幅度仍较大,随机取值得到的不一定是最佳实际数据.图6 两种算法对数据集Ⅰ误差平方和的对比F i g .6 C o m p a r i s o no f t w o a l go r i t h m s f o r s u m s q u a r e d e r r o r o nd a t a s etⅠ图7 两种算法对数据集Ⅱ误差平方和的对比F i g .7 C o m p a r i s o no f t w o a l g o r i t h m s f o r s u ms q u a r e d e r r o r o nd a t a s e tⅡ为证明P K -m e a n s ++算法的优越性,本文选择在西瓜数据集上进行实验,并将实验基数设为10次.图9为西瓜数据集使用K -m e a n s ++算法和P K -m e a n s ++算法实验10次得到的误差平方和对比曲线.由图9可见,P K -m e a n s ++算法计算得出的误差平方和较K -m e a n s ++算法上下浮动较小,结果较平均,表明P K -m e a n s ++算法在误差平方和计算上具有优势.4341 吉林大学学报(理学版) 第57卷图8 两种算法对数据集Ⅲ误平方和的对比F i g .8 C o m p a r i s o no f t w o a l go r i t h m s f o r s u m s q u a r e d e r r o r o nd a t a s etⅢ图9 两种算法对西瓜数据集4.0误差平方和的对比F i g .9 C o m p a r i s o no f t w o a l g o r i t h m s f o r s u ms q u a r e d e r r o r o nw a t e r m e l o nd a t a s e t 4.04 P K -m e a n s ++算法应用本文将P K -m e a n s ++算法应用到S e e d s 数据集上,计算S e e d s 数据集组内的误差平方和(S S E ).由于已经验证了P K -m e a n s ++算法在计算误差平方和方面的稳定性,因此,在对S e e d s 数据集的实验过程中,本文针对每个K 仅进行单次实验即可,即通过误差平方的方式确定聚类数K 的最佳数值.利用P K -m e a n s ++算法分别计算K =2,3,4,5时的误差平方和,结果列于表1.表1 P K -m e a n s ++算法计算不同K 值的S S ET a b l e 1 S S Ef o r d i f f e r e n t K v a l u e s c a l c u l a t e db y P K -m e a n s ++a l go r i t h m K 值23456误差平方和992.883571.317508.096368.089307.304 手肘法[13]的核心指标是误差平方和,该方法可获得较准确的聚类数,最终图形为手肘的形状.随着聚类数K 的增大,样本划分更精细,每个簇的聚合程度逐渐提高,则S S E 会逐渐变小,整个过程的S S E 可归结为下列3个阶段[14]:1)当K 小于真实聚类数时,K 的增大会大幅度增加每个簇的聚合程度,故S S E 的下降幅度会很大;2)当K 到达真实聚类数时,此时是一个过渡期,若继续增加K ,则所得到的聚合程度回报会迅速变小,故S S E 的下降幅度会骤减;3)当K 值大于真实聚类数时,S S E 会随K 的增大而趋于平缓.最终的误差平方和S S E 和K 的关系图是一个手肘形状,而肘部对应的K 值即为数据的真实聚类数,如图10所示.由图10可见,聚类数K =3是S e e d s 的最佳聚类个数.利用P K -m e a n s ++算法聚类后的效果如图11所示.由图11可见,P K -m e a n s ++算法将S e e d s 数据集成功聚类为3个类别.图10 S e e d s 数据集手肘图F i g .10 E l b o wd i a g r a mo f S e e d s d a t a s e t 图11 S e e d s 使用P K -m e a n s ++算法的聚类效果F i g .11 C l u s t e r i n g e f f e c t o f P K -m e a n s ++a l g o r i t h mo nS e e d s 综上所述,针对K -m e a n s ++算法在使用常见的选取初始聚类中心方式对较分散数据集进行误差平方和计算时,聚类结果的误差平方和影响波动较大的问题,本文提出了一种P K -m e a n s ++算法,5341 第6期 王海燕,等:一种局部概率引导的优化K -m e a n s ++算法6341吉林大学学报(理学版)第57卷该算法在进行较分散数据集聚类时,借助局部概率引导聚类中心的选取,选取初始聚类中心的方式在同一K值的情形下对较分散的数据集可取到较稳定的误差平方和,即P K-m e a n s++算法提高了误差平方和的准确度,聚类后的误差平方和比K-m e a n s++算法更稳定,从而更好地保证了随机实验取值的稳定性.参考文献[1]范明,孟小峰.数据挖掘:概念与技术[M].3版.北京:机械工业出版社,2012:1-488.(F A N M i n g,M E N GX i a o f e n g.D a t aM i n i n g:C o n c e p t s a n dT e c h n i q u e s[M].3r d e d.B e i j i n g:C h i n aM a c h i n eP r e s s,2012:1-488.)[2]王菲菲.K-m e a n s聚类算法的改进研究及应用[D].兰州:兰州交通大学,2017:1-76.(WA N G F e i f e i.R e s e a r c ha n d A p p l i c a t i o n o ft h eI m p r o v e d K-m e a n s C l u s t e r i n g A l g o r i t h m[D].L a n z h o u:L a n z h o uJ i a o t o n g U n i v e r s i t y,2017:1-76.)[3]成卫青,卢艳红.一种基于最大最小距离和S S E的自适应聚类算法[J].南京邮电大学学报(自然科学版),2015,35(2):102-107.(C H E N G W e i q i n g,L U Y a n h o n g.A d a p t i v eC l u s t e r i n g A l g o r i t h mB a s e d o nM a x i m u ma n d M i n i m u m D i s t a n c e s,a n dS S E[J].J o u r n a lo fN a n j i n g U n i v e r s i t y o fP o s t sa n d T e l e c o mm u n i c a t i o n s(N a t u r a l S c i e n c eE d i t i o n),2015,35(2):102-107.)[4]蒋丽,薛善良.优化初始聚类中心及确定K值的K-m e a n s算法[J].计算机与数字工程,2018,46(1):21-24.(J I A N G L i,X U E S h a n l i a n g.A K-m e a n s A l g o r i t h m B a s e d o n O p t i m i z i n g t h eI n i t i a lC l u s t e r i n g C e n t e ra n dD e t e r m i n i n g t h e K V a l u e[J].C o m p u t e r a n dD i g i t a lE n g i n e e r i n g,2018,46(1):21-24.)[5]周爱武,崔丹丹,潘勇.一种优化初始聚类中心的K-m e a n s聚类算法[J].微型机与应用,2011,30(13):1-3.(Z HO U A i w u,C U ID a n d a n,P A N Y o n g.A n O p t i m i z a t i o nI n i t i a lC l u s t e r i n g C e n t e ro f K-m e a n s C l u s t e r i n gA l g o r i t h m[J].S o f t w a r eT e c h n o l o g y,2011,30(13):1-3.)[6] G U L e i.A N o v e lL o c a l i t y S e n s i t i v e K-m e a n s C l u s t e r i n g A l g o r i t h m B a s e d o n S u b t r a c t i v e C l u s t e r i n g[C]//P r o c e e d i n g s o f t h e7t hI E E EI n t e r n a t i o n a lC o n f e r e n c eo nS o f t w a r eE n g i n e e r i n g a n dS e r v i c eS c i e n c e(I C S E S S).P i s c a t a w a y,N J:I E E E,2016:836-839.[7]鲍雷.混合遗传聚类算法在客户细分中的应用研究[D].广州:暨南大学,2011:1-57.(B A OL e i.A p p l i e dR e s e a r c ho fH y b r i dG e n e t i cC l u s t e r i n g A l g o r i t h mi nG u s t o m e r S e g m e n t a t i o n[D].G u a n g z h o u:J i n a nU n i v e r s i t y,2011:1-57.)[8] A R T HU RD,V A S S I L V I T S K I I S.K-m e a n s++:T h eA d v a n t a g e so fC a r e f u lS e e d i n g[C]//P r o c e e d i n g so f t h eE i g h t e e n t hA n n u a lA C M-S I AM S y m p o s i u mo nD i s c r e t eA l g o r i t h m s.N e w Y o r k:A C M,2007:1027-1035.[9]张亚洲,于正声.基于K-m e a n s++聚类的视频摘要生成算法[J].工业控制计算机,2017,30(7):129-130.(Z HA N G Y a z h o u,Y U Z h e n g s h e n g.V i d e o S u mm a r i z a t i o n G e n e r a t i o n A l g o r i t h m B a s e d o n K-m e a n s++C l u s t e r i n g[J].I n d u s t r i a l C o n t r o l C o m p u t e r,2017,30(7):129-130.)[10]陈万志,徐东升,张静,等.结合优化支持向量机与K-m e a n s++的工控系统入侵检测方法[J].计算机应用,2019,39(4):1089-1094.(C H E N W a n z h i,X U D o n g s h e n g,Z HA N GJ i n g,e t a l.I n t r u s i o nD e t e c t i o nM e t h o d f o rI n d u s t r i a l C o n t r o l S y s t e m w i t h O p t i m i z e dS u p p o r tV e c t o r M a c h i n ea n d K-m e a n s++[J].J o u r n a l o fC o m p u t e rA p p l i c a t i o n s,2019,39(4):1089-1094.)[11]余秀雅,刘东平,杨军.基于K-m e a n s++的无线传感网分簇算法研究[J].计算机应用研究,2017,34(1):181-185.(Y U X i u y a,L I U D o n g p i n g,Y A N GJ u n.R e s e a r c ho n W i r e l e s sS e n s o rN e t w o r k sC l u s t e r i n g A l g o r i t h mB a s e do n K-m e a n s++[J].A p p l i c a t i o nR e s e a r c ho fC o m p u t e r s,2017,34(1):181-185.)[12]王海燕,崔文超,李闯,等.结合P y t h o n的分析化学参数提取自动化[J].吉林大学学报(理学版),2018,56(4):969-972.(W A N G H a i y a n,C U I W e n c h a o,L IC h u a n g,e ta l.A u t o m a t i o no fP a r a m e t e r E x t r a c t i o ni n A n a l y t i c a lC h e m i s t r y C o m b i n e dw i t hP y t h o n[J].J o u r n a l o f J i l i nU n i v e r s i t y(S c i e n c eE d i t i o n),2018,56(4):969-972.)[13]王建仁,马鑫,段刚龙.改进的K-m e a n s聚类k值选择算法[J].计算机工程与应用,2019,55(8):27-33.(WA N GJ i a n r e n,MA X i n,D U A N G a n g l o n g.I m p r o v e d K-m e a n sC l u s t e r i n g k-V a l u eS e l e c t i o n A l g o r i t h m[J].C o m p u t e rE n g i n e e r i n g a n dA p p l i c a t i o n s,2019,55(8):27-33.)[14]李振东,钟勇,张博言,等.基于深度特征聚类的海量人脸图像检索[J].哈尔滨工业大学学报,2018,50(11):101-109.(L I Z h e n d o n g,Z HO N G Y o n g,Z HA N G B o y a n,e t a l.I m a s s i v eF a c e I m a g eR e t r i e v a lB a s e do nD e p t hF e a t u r eC l u s t e r i n g[J].J o u r n a l o fH a r b i n I n s t i t u t e o fT h e c h n o l o g y,2018,50(11):101-109.)(责任编辑:韩啸)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ISSN 1000-9825, CODEN RUXUEW E-mail: jos@Journal of Software, Vol.19, No.7, July 2008, pp.1683−1692 DOI: 10.3724/SP.J.1001.2008.01683 Tel/Fax: +86-10-62562563© 2008 by Journal of Software. All rights reserved.∗一种基于K-Means局部最优性的高效聚类算法雷小锋1,2+, 谢昆青1, 林帆1, 夏征义31(北京大学信息科学技术学院智能科学系/视觉与听觉国家重点实验室,北京 100871)2(中国矿业大学计算机学院,江苏徐州 221116)3(中国人民解放军总后勤部后勤科学研究所,北京 100071)An Efficient Clustering Algorithm Based on Local Optimality of K-MeansLEI Xiao-Feng1,2+, XIE Kun-Qing1, LIN Fan1, XIA Zheng-Yi31(Department of Intelligence Science/National Laboratory on Machine Perception, Peking University, Beijing 100871, China)2(School of Computer Science and Technology, China University of Mining and Technology, Xuzhou 221116, China)3(Logistics Science and Technology Institute, P.L.A. Chief Logistics Department, Beijing 100071, China)+ Corresponding author: E-mail: leiyunhui@Lei XF, Xie KQ, Lin F, Xia ZY. An efficient clustering algorithm based on local optimality of K-Means.Journal of Software, 2008,19(7):1683−1692. /1000-9825/19/1683.htmAbstract: K-Means is the most popular clustering algorithm with the convergence to one of numerous localminima, which results in much sensitivity to initial representatives. Many researches are made to overcome thesensitivity of K-Means algorithm. However, this paper proposes a novel clustering algorithm called K-MeanSCANby means of the local optimality and sensitivity of K-Means. The core idea is to build the connectivity betweensub-clusters based on the multiple clustering results of K-Means, where these clustering results are distinct becauseof local optimality and sensitivity of K-Means. Then a weighted connected graph of the sub-clusters is constructedusing the connectivity, and the sub-clusters are merged by the graph search algorithm. Theoretic analysis andexperimental demonstrations show that K-MeanSCAN outperforms existing algorithms in clustering quality andefficiency.Key words: K-MeanSCAN; density-based; K-Means; clustering; connectivity摘要: K-Means聚类算法只能保证收敛到局部最优,从而导致聚类结果对初始代表点的选择非常敏感.许多研究工作都着力于降低这种敏感性.然而,K-Means的局部最优和结果敏感性却构成了K-MeanSCAN聚类算法的基础.K-MeanSCAN算法对数据集进行多次采样和K-Means预聚类以产生多组不同的聚类结果,来自不同聚类结果的子簇之间必然会存在交集.算法的核心思想是,利用这些交集构造出关于子簇的加权连通图,并根据连通性合并子簇.理论和实验证明,K-MeanScan算法可以在很大程度上提高聚类结果的质量和算法的效率.关键词: K-MeanSCAN;基于密度;K-Means;聚类;连通性中图法分类号: TP18文献标识码: A∗ Supported by the National High-Tech Research and Development Plan of China under Grant No.2006AA12Z217 (国家高技术研究发展计划(863)); the Foundation of China University of Mining and Technology under Grant No.OD080313 (中国矿业大学科技基金)Received 2006-10-09; Accepted 2007-07-171684 Journal of Software软件学报 V ol.19, No.7, July 2008聚类分析在统计学、机器学习、数据挖掘、生物学、空间数据库、Web搜索、分布式网络、市场营销等领域得到广泛的研究和应用,在文献[1]中对聚类方法进行了很好的综述.一般地,假设d维数据空间A中有n个样本,每个样本可以视为d维空间的一个点,聚类是将这n个点分组,每组就形成一个类簇,要求属于同一类簇的点尽可能相近,不同类簇间的点尽可能远离.常用的聚类算法主要有划分方法、层次方法、基于密度的方法、基于网格的方法和基于模型的方法.本文提出一种新的聚类算法——K-MeanSCAN,集成多种聚类方法的性质,特别是K-Means算法的局部最优特征和结果敏感性.理论分析和实验结果表明,K-MeanSCAN算法具有如下特点:(1) 可以发现任意形状的类簇.K-MeanSCAN算法充分借鉴了基于密度聚类方法的思想,能够发现任意形状的类簇,并对异常点和噪声数据不敏感.(2) 考虑了子簇之间的连通强度.避免了基于密度聚类算法中由于密度连通关系的传递性导致绝大多数的样本点聚集到非常少的几个类簇中(通常是一类).(3) 算法具有很好的时间性能和伸缩性.算法结合采样技术、K-Means预聚类技术和图搜索算法提供高效的聚类性能,其时间复杂度为O(n),且对大数据集有很强的伸缩性.(4) 算法引入了钝参数的概念,减轻了聚类结果对参数阈值的敏感性,使得算法无需过多的先验知识.此外,算法仅使用一个参数对类簇的密度进行建模,与DBSCAN(density based spatial clustering of application with noise)[2]的Eps和MinPts两个参数相比,易于交互式或自动计算以确定密度阈值.本文第1节对现有的一些聚类算法进行综述.第2节详细阐述K-MeanSCAN算法的基本思想及其形式化定义,并给出具体的算法描述和复杂性分析.第3节提供详细的实验以证明K-MeanSCAN算法的聚类质量和执行效率.最后是结论和下一步工作说明.1 常用聚类算法综述划分聚类算法通过迭代重定位策略优化特定的目标函数,尝试确定数据集的一个划分.最常用的目标函数是误差平方和准则,如K-Means算法.K-Means算法对类球形且大小差别不大的类簇有很好的表现,但不能发现形状任意和大小差别很大的类簇,且聚类结果易受噪声数据影响.此外,K-Means算法仅保证快速收敛到局部最优结果,从而导致聚类结果对初始代表点的选择非常敏感,本文称其为结果敏感性,是许多研究工作所要着力解决的问题.层次聚类算法以自顶向下(分裂)或自底向上(凝聚)的方式将数据对象划分成一个层次树结构,即类簇树.算法的聚类效果很大程度上依赖于度量类簇之间相异度的距离函数.此外,一般层次聚类算法的伸缩性不强,其时间复杂度通常为O(n2).BIRCH(balanced iterative reducing and clustering using hierarchies)[3]和CURE(clustering using representatives)[4]算法试图提高层次聚类结果的质量,解决其算法伸缩性问题.BIRCH算法具有O(n)的计算复杂度,在有限内存下可以很好地工作.但是,算法使用的相异度度量导致BIRCH只能发现球形类簇.CURE使用固定数量的代表点来定义类簇,可以发现复杂形状和不同大小的类簇,对噪声具有很好的免疫能力.然而,CURE算法的收缩方式隐含地依赖于球形类簇假设,故在处理特殊形状的类簇时比较困难.基于密度的聚类算法中类簇被定义为连通的稠密子区域.因此,算法能够发现任意形状的类簇,并对异常点和噪声有自然的免疫能力.DBSCAN是典型的面向低维空间数据聚类的基于密度的算法,其关键概念是由对象最近邻域的局部分布度量的密度及其连通性.DBSCAN算法本质上只是提供了一个根据密度阈值参数进行聚类结果搜索的过程,聚类结果在用户指定密度阈值那一刻已经唯一地确定,算法本身并不对聚类的结果负责.其主要缺陷包括:(1) 算法通常对参数值的设置非常敏感,聚类结果的质量很大程度上依赖于密度阈值参数的合理选取,因而对用户的经验和专业素养提出很高的要求;(2) 真实的数据集合经常分布不均匀,导致这种全局性的密度参数通常不能刻画数据内在的聚类结构;(3) 算法中通过密度连通性来合并高密子簇,由于密度连通关系的传递性,往往使得绝大多数的样本点雷小锋 等:一种基于K -Means 局部最优性的高效聚类算法1685C 聚集到非常少的几个类簇中(通常是一类). OPTICS(ordering points to identify the clustering structure)[5]算法针对DBSCAN 算法的缺陷进行了改进. 2 K -MeanSCAN 算法2.1 算法思想2.1.1 从搜索到构造许多聚类算法的基本框架是搜索与合并.如在层次方法中需要搜索两个距离最近的类簇然后合并;而基于密度的聚类算法则不断地搜索高密子区域,然后利用连通性将其合并到当前聚类结果中.很明显,搜索过程需要面对整个样本集合,通常会导致算法低效.如DBSCAN 需要测试每个对象是否是核心对象,并对每个核心对象搜索其直接密度可达的对象,如果没有空间索引的辅助,DBSCAN 算法的复杂度为O (n 2).实际上,现有的很多聚类算法已经关注到这个问题,如CURE 算法利用采样方法减小搜索空间,而Chameleon [6]算法则通过图划分算法将样本对象聚类为大量相对较小的子簇.具体到本文,我们采用了随机采样和K -Means 算法高效地聚出大量的高密子簇,后续处理都基于这些构造出的高密子簇进行,无须直接面对所有的样本.我们称这种算法框架为构造与合并.因此,K -MeanSCAN 算法的处理流程为:随机采样、预聚类、合并和后处理.聚类算法的本质是密度估计问题,K -MeanSCAN 算法的核心思想是,增加K -Means 算法中高斯混合模型的高斯分量数目以提升密度估计的精度,并利用K -Means 聚类的局部最优和结果敏感性的特征进行高斯分量(即高密子簇)的合并剪枝,克服过拟合问题,最终实现有效的聚类.2.1.2 K -Means 算法的概率模型K -Means 算法实质上是一种将聚类视为密度估计问题的概率方法.在概率方法中,假设样本来自于如下形式的混合模型: ,1:(|)()(|,)j j j j j k p P C p Θθ==∑x x 式中,Θ=(θ1,…,θk )是待估计的参数向量;条件概率密度p (x |θj ,C j )称为分量密度,表示类别j 的概率密度形式,且参数向量θj 未知;先验概率P (C j )称为混合因子.为了简化问题,K-Means 算法进一步假设:(1) 每个类别的概率密度形式为球形高斯分布,即θj =(μj ,Σ)且Σ1=…=Σk =σ2I ,μj ,σ2未知;(2) 每个样本唯一地属于一个类别;(3) 假设所有类别的混合因子相等.于是,混合模型简化为 22/221:1:11(|)max (|,,)max exp ||||(2)2j j j d j k j k p C ΘφμΣμσσ==⎧⎫⎛==−⎞−⎨⎬⎜π⎝⎠⎩⎭x x x ⎟ (1) 该简化模型可以通过最大似然方法求解,对于观测样本X =(x 1,…,x n ),相应的对数似然函数为2/222111(|)ln (|)ln[(2)]||||2i j n kd i i j l X p n ΘΘσσ====−π−−∑x x i j C μ∈∑∑x j (2)最大化该对数似然函数等价于最小化上式的欧氏距离平方项,即得到K -Means 的误差平方和准则:(3)21||||i j ke i j C J μ=∈=−∑∑x x 通过迭代优化上述的误差平方和准则,K -Means 算法最终可以估计出每个高斯分量的均值向量和协方差矩阵Σ=σ2I .式中,n j 是类簇C j 的样本数目.1i j j i C j n μ∈=∑x x ,211||||i j k e i j j C 2J nd nd σμ=∈=−∑∑x x = (4) 2.1.3 K -MeanSCAN 的过拟合-合并剪枝策略要获得更有效的样本密度估计,J e 的值自然是越小越好.但是,J e 的值不仅取决于样本的分类情况,而且与类别数目k 有关.当类别数目k 给定时,J e 的值由样本的分类情况所决定,且存在一个最小值J k -min 对应于最优的样本类别划分.如果类别数目k 和高斯混合模型假设与实际问题相匹配时,最小值J k -min 必定很小,从而可以很好地近似样本密度;而如果模型假设不合理,则最小值J k -min 可能依然很大,对样本分布的近似效果较差.1686Journal of Software 软件学报 V ol.19, No.7, July 2008对于任意形状的类簇,很明显不能直接要求数据分布满足高斯混合模型的假设,否则会导致最小的误差平方和J k -min 很大.实际上,高斯混合模型具有很强的表达能力,如果高斯分量密度的数目k 足够大,则高斯混合模型几乎可以近似任意一种概率分布.换言之,随着类别数目k 的增加,相应的J k -min 会减小.简单证明如下:类别数目k 的增加,必然导致最终每个类簇的形状缩小,对应于高斯分量的σ2减小;而从公式(3)和公式(4)可以得出J k -min =nd σ2,即最小的误差平方和正比于σ2;因此,k 的增加会导致最小的误差平方和J k -min 的减小.极端情况下,k =n ,则每个样本点都是一个类簇,即J k -min =0,说明此时的经验误差为0,但是此时,模型的推广能力极差.根据统计学习理论,经验误差最小并不等于期望误差最小,经验风险只有在样本数无穷大时才趋近于期望风险.因此,经验误差最小不能保证分类器的推广能力,需要找到经验风险最小和推广能力最大的平衡点.同样,利用足够多的高斯分量组成的混合模型来描述数据会导致过拟合的问题,影响模型的推广能力.因此,在K -MeanSCAN 算法中,我们采用过拟合-剪枝的策略进行聚类,即首先使用分量足够多的高斯混合模型来较好地近似样本分布,然后通过合并一些高斯分量的剪枝策略来处理过拟合问题.除了提高对样本分布的近似精度以外,增加类别数目还有其他好处.已知K -Means 算法通过迭代重定位技术最小化误差平方和准则,最终快速收敛到一个局部最优的解.形象地,可以认为K -Means 算法是在对数似然函数空间上的随机爬山算法,对于具有k 个全局最高点和大量局部极高点的数据集,K -Means 聚类算法很可能陷入局部极高点,从而导致对于不同的初始类簇代表点,算法会收敛到不同的局部极值点,即聚类结果对初始代表点的选择非常敏感,本文称其为“结果敏感性”.类别数目k 的增大类似于开辟更多的爬山路径,如果k ′>>k 个路径,则到达全局最高点的可能性自然会增大,当然过拟合问题不可避免.2.1.4 类簇的合并剪枝在K -MeanSCAN 算法中,利用K -Means 的结果敏感性对类簇进行合并剪枝来处理过拟合问题.假设在样本集上进行两次K -Means 聚类,得到两组结果分别是R 1={C 11,C 12,…,C 1k ′}和R 2={C 21,C 22,…,C 2k ′},且因结果敏感性使得R 1≠R 2,则至少存在一个属于R 1(或R 2)的类簇C 1m 与R 2(或R 1)中至少两个类簇之间都存在交集(证明略).实际中,K -Means 算法的结果敏感性导致不同聚类结果中大量的类簇之间存在交集.如图1所示,对于 图1(a)的样本集合,图1(b)、图1(c)分别是两次K -Means 聚类的结果,图1(c)说明两次聚类结果之间存在交集.如果不同聚类结果中两个类簇之间交集的基数足够大,则我们宁愿相信这两个类簇中的样本不应该分为两类,而应合并为一个类簇.通过这种方式,可以建立如图2所示的类簇间的连通关系,并根据连通关系将类簇合并. S C 1C 21C ′2C′(a) (b) (c) (d)Fig.1 A demo of the sensitivity of K -Means algorithm图1 K -Means 算法结果敏感性的示意C 11C 12C 13C 14C 151112131415(a) (b)Fig.2 Building the connection relationships between clusters图2 建立类簇之间的连通关系R 1Pre-Clustering Connectivity6雷小锋 等:一种基于K -Means 局部最优性的高效聚类算法1687n 上述思路构成了K -MeanSCAN 算法实现类簇合并剪枝的基础.基于K -Means 算法预聚类的结果, K -MeanSCAN 算法的主要步骤包括:(1) 在多次预聚类结果上构造类簇之间的加权连通图;(2) 利用图搜索算法合并连通的类簇;(3) 算法最后还包括一个后处理阶段,利用凝聚层次聚类算法对步骤(2)生成的合并类簇再进行一次聚类,以进一步保证聚类结果的质量.此外,后处理步骤还需要对所有在合并剪枝中剔除的样本进行重新计算,确定其最终的类别标记或者标记为噪声.在描述具体算法之前,我们首先引入一些形式化的概念和定义.以下用k 表示实际的类簇数目,用k ′表示预聚类的类簇数目.2.2 概念和定义设P =(R 1,R 2,…,R h )表示h 次K -Means 聚类结果,且R i ={C i 1,C i 2,…,C ik ′}∈P ,并称C ij 为聚类结果R i 的一个子簇. 定义1(子簇密度和高密子簇). 假设C ij 为一个子簇,其密度应正比于子簇中的样本数量,反比于子簇的空间范围,形式化定义如下:den (C ij )=||C ij ||/r d ,max((,.))l ijl ij C r dist C mea ∈=x x . 式中,||*||表示集合*的基数,r 为所有样本到子簇均值中心的最大距离.如果den (C ij )大于给定阈值denh ,则称该子簇为高密子簇.在K -MeanSCAN 算法中,只有高密子簇才参与合并.定义2(直接连通). 假设C ij ∈R i 和C st ∈R s 是两个高密子簇,且二者的交集非空,则称C ij 与C st 是直接连通的,并定义C ij 与C st 之间的直接连通强度为两个子簇交集的基数与其并集基数的比值,dcn (C ij ,C st )=||C ij ,∩C st ||/||C ij ,∪C st ||.直接连通关系具有自反、对称和传递性,是一种等价关系.可以看到,来自同一聚类结果的任意两个子簇之间都不存在交集,不可能直接连通或者连通强度为0.如果两个直接连通的子簇的直接连通强度大于给定的阈值dcnh ,则称两个子簇是强直接连通的.定义3(间接连通). 假设C i 和C j 是任意两个高密子簇,且二者的交集为空,如果存在一个子簇的序列C 1,C 2,…,C s ,且C 1=C i ,C s =C j ,使得C t +1与C t 之间是强直接连通的,则称C i 与C j 是强间接连通的,并且间接连通的连通强度为所有强直接连通强度的最小值.定义4(合并簇). 基于上述的连通关系,可以构造关于所有高密子簇的加权连通图(weighted connected graph,简称WCG),其中,一个高密子簇对应于图中的一个顶点,并且为每条边分配一个连通强度作为权值.于是,一个合并簇C 就定义为所有强连通(包括直接连通和间接连通)的子簇的并集,最终产生的合并簇满足两个条件:(1) C 中任意两个子簇必定是强连通的;(2) 如果C i 属于C ,且与C j 是强连通的,则C j 也必定属于C .2.3 算法描述K -MeanSCAN 算法在构造与合并的算法框架下实现.在构造过程中,算法首先从样本数据集中随机抽取一组样本.然后,算法利用K -Means 对随机样本进行预聚类,预聚类的类簇数目为k ′>>k .重复采样和预聚类过程h 次,得到h 组在随机样本上的聚类结果,每组聚类结果包括k ′个类簇中心.此时,对整个样本集进行单遍扫描,将每个样本对象分配给相应的距离最近的h 个类簇中心.至此,产生h 组关于数据集的划分.基于这些数据集的划分,K -MeanSCAN 算法计算来自不同划分的子簇之间的连通性,并构造加权连通图,然后利用广度优先的图搜索算法求得最大连通的子图,从而将相应的高密子簇合并,即上文定义的合并簇.最后,利用凝聚的层次聚类算法对合并簇进一步处理,得到最终聚类结构.在层次聚类过程中使用的距离度量定义为两个待合并簇中所有子簇中心的最小距离,假设MC 1和MC 2是两个合并簇,则11221212,(,)min (.,.C MC C MC dist MC MC dist C mean C mean ∈∈=). 最后,根据最终的聚类结构对所有未参与合并剪枝的样本进行重新标记,确定其类别或者标记为噪声.以下通过伪代码给出K -MeanSCAN 算法的流程说明.Algorithm program K -MeanSCAN(SetOfPoints ,h =2,k ′)var RandomSample: rndsmp ;1688Journal of Software 软件学报 V ol.19, No.7, July 2008Clusters: cluss , mergedcluss , finalcluss ;Cluster: clus ; Connection: conns ;Integer: iterations ; Float: denh , dcnh ;begin//pre-clusteringrepeatrndsmp =DrawSample ();clus =K-Means (rndsmp ,k ′);cluss .add (clus ); iterations ++;until iterations =hAssignEachObject (SetOfPoints ,cluss );denh =ComputeDenh (cluss );conns =BuildWCG (cluss );dcnh =ComputeDcnh (conns );mergedcluss =MergedByBFS (cluss ,conns ); finalcluss =MergedByAgglom (mergedcluss );return finalcluss ;end. //K -MeanSCAN算法中,参数h 是采样和预聚类的次数,也是构造过程产生的划分数.参数k ′是K -Means 预聚类时的类簇数目.在K -MeanSCAN 算法中,局部变量denh 和dcnh 分别是密度阈值和连通强度阈值.函数AssignEachObject ()在样本集上执行单遍扫描,将每个样本对象分配给相应的子簇;函数BuildWCG ()计算子簇之间的连通关系,并构造加权连通图;函数MergedByBFS ()通过广度优先的图搜索算法合并子簇;最后,函数MergedByAgglom ()通过层次聚类算法产生最终的聚类结构,并对被剔除的样本重新标记.限于篇幅,本文略去关于这些函数更为详细的 描述.2.4 算法参数设置2.4.1 采样大小在文献[4]中已经阐明合理的随机采样大小能够相当精确地反映类簇的几何结构,并通过如下定理给出了相应的采样精度保证.假设对于类簇u ,如果样本集包含至少f |u |个来自类簇u 的样本点,0≤f ≤1,则在聚类中丢失该类簇的概率很小.定理1. 对于一个类簇u ,如果采样大小s 满足如下约束:则随机样本集中来自类簇u 的样本数小于f |u |的概率小于δ,0≤δ≤1. 211log log 2||log ||||n n s fn f u u u 1δδδ⎛⎞⎛⎞⎛⎞⎛⎞≥+++⎜⎟⎜⎟⎜⎟⎜⎟⎝⎠⎝⎠⎝⎠⎝⎠. 假设u min 是需要关注的最小类簇,根据定理1可以得到相应的s min .对于k 个类簇,在样本大小为s min 时,从任意类簇u 中采样数目小于f |u |的概率具有上界k δ.2.4.2 预聚类次数h 和类簇数k ′参数h 是预聚类或采样的次数,很明显,h ≥2.根据K -MeanSCAN 算法的原理,h 较大,则属于同一类簇的子簇之间被合并的几率就较大,从而可以产生更高质量的聚类结果,不过同时也会增加计算代价.本文的实验测试表明,h =3~10通常已经足够.预聚类的另一个重要参数是类簇数目k ′.对于该参数的约束是要求k ′远远大于实际的类簇数目k ,小于样本集的大小n .为了能够捕捉到感兴趣的最小类簇u min ,k ′必须大于⎡n /|u min |⎤.在文献[7]中研究了k 近邻分类算法中参雷小锋 等:一种基于K -Means 局部最优性的高效聚类算法 1689 数k 的设置,给出一个法则:k ≈n 3/8.参考这一结论,我们推荐k ′值的选取满足如下约束:min(α⎡n /|u min |⎤,n 5/8),α取值一般小于等于10.需要说明的是,在满足上述约束条件时,k ′的取值对于聚类结果不敏感,我们称这种对结果不敏感的参数为“钝参数”,可以降低对先验知识和用户专业素养的要求,下文的实验将对这一事实进行说明.2.4.3 子簇密度阈值denh 和连通强度阈值dcnh参数denh 是子簇密度阈值,只有密度大于denh 的子簇才参与K -MeanSCAN 算法的合并过程,而密度小于denh 的子簇必包含大量的噪声.直观地,对于包含噪声或完全由噪声样本形成的子簇,其样本数目少,而空间分布范围却较大,故其密度很小;而对实际存在的类簇,则子簇比较紧缩,密度较大.假设h 次预聚类形成的hk ′个子簇的密度集合为dens ={den i |i =1,…,hk ′},以升序排序得到sort _dens ,其曲线模式如图3(a)所示.可以看出,从低密区域到高密区域存在一个急剧的跃迁,即可确定密度阈值.为了自动求解密度阈值,首先对sort _dens 进行差分运算得到diff _dens .绘制差分曲线,与密度曲线的跃迁处相对应,在差分曲线上存在一个较大的峰值.取前一半的差分运算值,并利用高斯函数形式对其进行曲线拟合,差分曲线的峰值处就对应于高斯函数的均值mu ,是密度阈值在sort _dens 中对应的索引值,如图3(b)所示.于是,密度阈值为denh =sort _dens [round (mu )].实验测试表明,这种自动密度阈值计算方法效果很好.而连通强度阈值dcnh 的设置取决于实际用户的主观倾向.一般情况下,可直接设置dcnh =0,或者取所有的连通强度的均值.0.20(a) Pattern of sort _dens (b) Finding denh on diff _dens(a) 子簇密度变化的曲线模式 (b) 差分曲线上的密度阈值求解Fig.3 Density threshold denh图3 密度阈值denh2.5 算法复杂性分析K -Means 算法是相当高效的,其计算复杂度为O (nkdt ),其中,n 为所有样本对象的数目,k 是设定的类簇数目,d 是样本数据的维度,t 是迭代的次数.通常,k <<n 且t <<n .h 次预聚类的时间复杂度为O (hn smp kdt ),这里,n smp 为随机样本的大小.单遍扫描样本集需要的时间代价为O (hn ).此后,所有的运算都基于K -Means 的预聚类结果,其中不涉及任何代价较高的空间几何计算.函数BuildWCG ()需要(hk )2次集合求交运算,假定每个子簇的平均样本数目为n /k ,则整个集合求交运算的时间代价为O (h 2kn ).函数MergedByBFS ()的时间复杂度为O (k 2),即广度优先搜索的代价.最后,函数MergedByAgglom ()的时间代价为O (k 2).于是,K -MeanSCAN 算法的总代价为O (hkn smp dt )+ O (hn )+O (h 2kn )+O (k 2)+O (k 2),假定n 很大,h 为常数,k <<n ,则算法的时间复杂度约为O (n ).3 实验评估本节我们通过实验比较来研究K -MeanSCAN 算法的性能和有效性.实验采用的数据包括在各种聚类算法评估中常用的模拟数据(如图4所示),以及DBSCAN 算法中使用的来自真实地球科学领域的SEQUOIA 2000基准测试数据[8].实验的硬件环境为P4 1.86Ghz 的CPU 和512MB 的内存,软件环境为Microsoft Windows XP Sub-Clusters of high density 0.180.160.140.120.100.080.060.04denh D e n s i t y 0.020.00sort _dens 160 180diff _dens0 10 20 30 80 0.000mu Gaussian fitting curve 0.0150.0050.0101690 Journal of Software 软件学报 V ol.19, No.7, July 2008 (professional)操作系统,所有代码均用Visual C++ 6.0实现.(a) Data 1 (b) Data 2 (c) Data 3 (d) Data 4Fig.4 Synthetic datasets for evaluating clustering algorithms图4 常用的评估聚类算法的模拟数据3.1 聚类结果图5~图8分别给出了上述4组数据经过预聚类、合并剪枝后的结果,以及相应的DBSCAN 聚类结果.实验中,预聚类的类簇数目均设置为k ′≈n 5/8,预聚类次数h =5,连通强度阈值dcnh =0.在每个图中,图(a)是K -MeanSCAN 聚类结果,图(b)是相应的密度曲线和密度阈值,图(c)是密度差分序列和高斯函数拟合曲线,图(d)是DBSCAN 聚类结果.denh Gaussian fitting curve (a) (b) sort_dens (c) diff_dens (d) Eps =21, Min Pts =4Fig.5 Clustering result of data 1 and its threshold denh图5 Data 1聚类结果及其密度阈值Gaussian fitting curve denh (a) (b) sort_dens (c) diff_dens (d) Eps =18.64, Min Pts =4Fig.6 Clustering result of data 2 and its threshold denh图6 Data 2聚类结果及其密度阈值(a) (b) sort_dens (c) diff_dens (d) Eps =15.38, Min Pts =4Fig.7 Clustering result of data 3 and its threshold denh图7 Data 3聚类结果及其密度阈值denh Gaussian fitting curve雷小锋 等:一种基于K -Means 局部最优性的高效聚类算法1691(a) (b) sort_dens (c) diff_dens (d) Eps =10.58, Min Pts =4Fig.8 Clustering result of data 4 and its threshold denh (dcnh =0)图8 Data 4聚类结果及其密度阈值(dcnh =0)可以看出,对于上述4组数据,K -MeanSCAN 算法无需后处理步骤即可得到高质量的聚类结果.对于数据集Data 4而言,当将其连通阈值设置为所有连通强度的均值时,无后处理步骤的K -MeanSCAN 聚类结果如图9所示.此时,下方的两个子簇得到区分,经后处理过程即可得到高质量的聚类效果.此外,DBSCAN 算法亦可取得不错的结果,但其密度参数设置需要多次调试,且对于Data 4而言,无法区分下方的两个子簇.同时可以看出密度曲线的变化模式,即对于有噪声的数据集,其密度曲线的跃迁区域远离y 轴;而对于无噪声的数据集,则其密度曲线的跃迁区域非常靠近y 轴.(a) (b) sort_dens (c) diff_densFig.9 Clustering result of data 4 and its threshold denh (dcnh =average connectivity)图9 Data 4聚类结果及其密度阈值(dcnh =平均连通强度)3.2 参数敏感性和算法伸缩性评估在K -MeanSCAN 算法中,一个重要的参数是预聚类时的子簇数目k ′.前文已经说明该参数对聚类结果不敏感,是“钝参数”.这里,我们在Data 4上对参数k ′进行敏感性分析.实验中,k ′≈206,h =5,dcnh =0.最终结果中,簇数的变化在图10中给出.可以看出,在k ′>30之后,K -MeanSCAN 算法均可获得满意的聚类结果.在SEQUOIA 2000的点数据集上执行DBSCAN,CURE 和K -MeanSCAN 这3种算法的时间代价在图11中给出.其中,DBACAN 算法在R*树索引基础上实现.在样本数量较少时(<10000),DBSCAN 算法性能较高;当样本数量继续增加时,采样技术使得CURE 和K -MeanSCAN 算法具有更好的伸缩性.Fig.10 Sensitivity analysis of k ′ Fig.11 Comparison of algorithm scalability图10 参数k ′敏感性分析 图11 算法的伸缩性比较实验denh Gaussian fittingcurve denh Gaussian fitting curve250642200150100500T i m e (s ) 0 10000 20000 30000 40000 50000 60000 Num of pints DBSCAN K -MeanSCAN CURE o f c l u s t e r s k ′。