原创数据挖掘课程论文聚类算法及K均值聚类算法的研究与应用附数据代码.docx
《原创数据挖掘课程论文聚类算法及K均值聚类算法的研究与应用附数据代码.docx》由会员分享,可在线阅读,更多相关《原创数据挖掘课程论文聚类算法及K均值聚类算法的研究与应用附数据代码.docx(19页珍藏版)》请在冰豆网上搜索。
![原创数据挖掘课程论文聚类算法及K均值聚类算法的研究与应用附数据代码.docx](https://file1.bdocx.com/fileroot1/2023-1/21/aae86736-4d20-4144-b7bf-ea6ab7e249d5/aae86736-4d20-4144-b7bf-ea6ab7e249d51.gif)
原创数据挖掘课程论文聚类算法及K均值聚类算法的研究与应用附数据代码
课程名称:
数据挖掘与商务智能课程编号:
29SBG9016
论文题目:
聚类算法及K-均值聚类算法的研究与应用
研究生姓名(学号):
)
论文评价:
评价项目
具体评价标准
得分(最高5分)
选题意义
选题有理论或实际意义;选题的难易程度;清楚了解专业背景
12345
知识水平
对课程所讲授的理论知识熟练掌握,正确运用;理论掌握的深入程度
12345
论文表述
主题突出,观点明确,论据充分,结构合理,层次清楚,语言通顺,文字简练,无错别字
12345
结论与创新
结论表述清晰,推导合理,意义明确,有理论或应用上的指导性价值;研究方法有创新,或改进了现有成果(建议在论文中直接提及)
12345
参考文献
格式排版
文献引用合理充分;参考文献格式正确;严格遵守论文格式及排版要求
12345
是否达到本课程小论文要求:
是()否()
论文成绩:
任课教师:
评阅日期:
2014年6月
聚类算法及K-均值聚类算法的研究与应用
摘要:
本文首先阐明了聚类算法的基本概念,介绍了几种比较典型的聚类算法,然后重点阐述了K-均值算法的基本思想,对K-均值算法的优缺点做了分析,回顾了对K-均值改进方法的文献,最后在Clementine中应用了K-均值算法对数据进行了分析。
关键词:
聚类算法;K-均值算法;Clementine
1引言
随着信息技术和计算机技术的迅猛发展,人们面临着越来越多的文本、图像、视频以及音频数据,为帮助用户从这些大量数据中分析出其间所蕴涵的有价值的知识,数据挖掘(DataMining,DM)技术应用而生。
数据挖掘,就是从大量无序的数据中发现隐含的、有效的、有价值的、可理解的模式,进而发现有用的知识,并得出时间的趋向和关联,为用户提供问题求解层次的决策能力[1]。
数据挖掘涉及多学科技术,包括数据库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理和空间数据分析等,已在医学、电信、零售业等科学或商业领域得到了成功应用。
本文具体介绍了聚类算法中的K-均值算法及其在Clementine中的实现。
2聚类算法的概述
2.1聚类算法的基本概念
聚类分析(ClusteringAnalysis)是数据挖掘中的一个重要研究领域。
它是一种无监督的学习方法,它通过一定的规则将数据按照定义的相似性划分为若干个类或簇,这些类或簇是由许多在性质上相似的数据点构成的。
同一个类中的数据彼此相似,而与其它类中的数据相异。
聚类分析已被广泛应用于统计学、机器学习、空间数据库、生物学以及市场营销等领域,例如在商务领域中,聚类分析能够帮助市场分析人员来更清楚的认识市场,对一些不同的消费者群体进行有效的划分,进而从中发现不同的购买能力,寻求新的潜在的市场;在生物学领域,聚类分析可以通过生物数据库中的数据对不同的物种进行分类或对基因进行学习,来认知不同种群的内在结构;在地理信息系统中,聚类分析可以通过对遥感器传回的数据进行分析,确定河流、街道的位置和结构,并提取有用的信息加以利用;在因特网上,聚类分析可以通过对数据的聚类来批量处理同种数据行为,修改或修复某种数据文档的有用信息;在医学领域,聚类分析可以通过对某种病毒或细菌的分类来自动确定某种病症[2]。
聚类是一个无监督的学习过程,它同分类的根本区别在于:
分类是需要事先知道所依据对象的类别特征,而聚类是要找到这个对象的类别特征,因此,在很多应用中,聚类分析作为一种数据预处理过程,是进一步分析和处理数据的基础。
一个能产生高质量聚类的算法必须满足下面两个条件:
类内(intra-class)数据或对象的相似性最强,以紧致度描述;类间(inter-class)数据或对象的相似性最弱,以分离度描述。
聚类质量的高低通常取决于聚类算法所使用的相似性测量的方法和实现方式,同时也取决于该算法能否发现部分或全部隐藏的数据的模式。
聚类算法中的基本定义:
(1)类簇的定义[3]:
一个集合中包含的数据对象,对不同的类簇,要求对象之间的特征尽可能的相异,但是在同一个类簇中的对象之间要具有很大的相似性。
(2)Everitt在1974年给出了聚类的定义[4]:
聚类就是将数据分成许多类簇,其中一个类簇内的实体是相似的,不同类簇的实体是不相似的;一个类簇是测试空间中点的会聚,同一类簇的任意两个点间的距离小于不同类簇的任意两个点间的距离;类簇可以描述为一个包含密度相对较高的点集的多维空间中的连通区域,它们借助包含密度相对较低的点集的区域与其他区域(类簇)相分离。
2.2常用的聚类算法
常用的聚类算法有:
K-MEANS、K-MEDOIDS、BIRCH、CURE、DBSCAN、STING。
2.2.1聚类算法的分类
聚类算法可以分为基于划分的方法、基于层次的方法、基于密度的方法、基于网格的方法和基于模型的方法。
主要聚类算法的分类如表1所示。
表1主要聚类算法分类
类别
包括的主要算法
划分的方法
K-MEANS算法(K平均)、K-MEDOIDS算法(K中心点)、CLARANS算法(基于选择的算法)
层次的方法
BIRCH算法(平衡迭代规约和聚类)、CURE算法(代表点聚类)、CHAMELEON算法(动态模型)
基于密度的方法
DBSCAN算法(基于高密度连接区域)、DENCLUE算法(密度分布函数)、OPTICS算法(对象排序识别)
基于网络的方法
STING算法(统计信息网络)、CLIQUE算法(聚类高维空间)、WAVE-CLUSTER算法(小波变换)
基于模型的方法
统计学方法、神经网络方法
(1)划分的方法
典型的划分方法有K-MEANS方法和K-K-MEDOIDS方法以及它们的改进算法。
K平均方法将在下一章详细说明,这里不再赘述。
典型的K-MEANS方法有PAM算法和CLARA算法。
PAM算法对“噪声”和孤立点数据不敏感,且由它所发现的簇与聚类数据的输入顺序无关,能够处理不同类型的数据点。
CLARA算法不是从整个数据集中发现代表对象,而是从数据集中抽取一部分样本,然后用替换代价的计算方法从样本中选择代表点。
(2)层次的方法
层次的方法对给定的数据对象集合进行层次的分解。
按照层次的形成方式,层次的方法可以分为凝聚的方法和分裂的方法。
凝聚的方法,也称为自底向上的方法,一开始将每个对象都作为单独的一个类,然后相继地合并相近的对象或类,直到所有的类合并成一个(层次的最上层),或者达到一个终止条件。
分裂的方法,也称为自顶向下的方法,一开始将所有的对象都置于同一个类中,然后通过不断的迭代,在迭代的每一步中,一个类被分裂为更小的类,最终直到每个对象被归入某个单独的类中,或者达到某个终止条件。
CURE采用了一种新颖的层次聚类算法,改算法选择基于质心和基于代表对象方法之间的中间策略,它具有良好的伸缩性,没有牺牲聚类质量,并且速度很快。
Chameleon是一个采用动态模型的层次聚类算法。
Chameleon比CURE在发现高质量的任意形状的聚类方面有更强的能力。
但是,在最坏的情况下,其对含有n个对象的高维数据的复杂度是O(n2)。
(3)基于密度的方法
基于密度的聚类方法的主要思想是:
只要临近区域的密度(对象或数据点的数目)超过某个阈值就继续聚类。
也就是说,对给定类中的每个数据点,在一个给定范围的区域中必须至少包含某个数目的点。
这样的方法可以用来过滤噪声孤立点数据,发现任意形状的类。
DBSCAN基本思想是:
对于一个类中的每个对象,在给定半径的邻域中包含的对象数不能少于某一给定的最小数目。
DBSCAN算法不进行任何的预处理而直接对整个数据集进行聚类操作。
当数据量非常大时,就必须有大内存量做支持,I/O消耗也非常大[5]。
OPTICS则是另一个基于密度的方法,它为自动的和交互的聚类分析计算一个聚类顺序,这个顺序代表了数据的基于密度的聚类结构。
OPTICS算法的计算复杂性约是DBSCAN的1.6倍。
(4)基于网络的方法
基于网络的方法把对象空间量化为有限数目的单元,形成一个网络结构。
所有的聚类都是在这个网络结构(即量化的空间)上进行。
这种方法的主要优点是它的处理速度很快,其处理时间独立于数据对象的数目,只与量化空间中每一维的单元数目有关。
STING算法利用了存储在网格单元中的统计信息。
WAVECLUSTER算法用小波变换的方法进行聚类。
CLIQUE算法是在高维数据空间中基于网格和密度的聚类方法。
这些算法都具有处理高维数据如空间数据库的能力,计算复杂度低,,具有良好的伸缩性等优点。
尤其是WAVECLUSTER算法,它不仅能有效的处理大数据集,而且能够发现任意形状的类,成功地处理孤立点,对输入的顺序不敏感,不要求指定聚类数目或邻域半径等输入参数。
(5)基于模型的方法
基于模型的方法为每个类假定了一个模型,算法主要是寻找数据对给定模型的最佳拟合。
一个基于模型的算法可能通过构建反映数据点空间分布的密度函数来定位聚类,它基于标准的统计数字自动决定聚类的数目,考虑噪声数据和孤立点,从而产生健壮的聚类算法。
基于统计学的聚类方法中,最著名的是Fisher提出的COBWEB算法。
COBWEB算法是一种流行的简单增量概念聚类算法。
它的输入对象用分类属性一值对来描述。
COBWEB算法以一个分类树的形式创建层次聚类。
神经网络聚类主要有两种方法:
竞争学习(competitivelearning)神经网络和自组织特征映射(self-organizingfeaturemaps,SOM)神经网络。
两种方法都涉及到神经单元的竞争[6]。
常用聚类算法的性能比较如表2所示[7]。
表2聚类算法的性能比较
聚类算法
适合数据类型
算法效率
发现的聚类形状
能否处理大数据集
是否受初始聚类中心影响
对异常数据敏感性
对输入数据顺序敏感性
K-MEANS
数值型
较高
凸形或球形
能
是
非常敏感
不敏感
K-MEDOIDS
数值型
一般
凸形或球形
否
否
不敏感
不敏感
BIRCH
数值型
高
凸形或球形
能
否
不敏感
不太敏感
CURE
数值型
较高
任意形状
能
否
不敏感
不太敏感
DBSCAN
数值型
一般
任意形状
能
是
敏感
敏感
STING
数值型
高
任意形状
能
否
一般
不敏感
由表2可得到以下结论:
1)大部分常用聚类算法只适合处理数值型数据;2)若考虑算法效率、初始聚类中心影响性和对异常数据敏感性,其中BIRCH算法、CURE算法以及STING算法能得到较好的结果;3)CURE算法、DBSCAN算法以及STING算法能发现任意形状的聚类。
2.2.2聚类分析中的数据类型及聚类准则函数
聚类算法的数据结构:
数据矩阵、相异度矩阵。
相异度矩阵:
相异度矩阵用来存储的是实体之间的差异性,n个实体的相异度矩阵表示为n×n维的矩阵,用d(A,B)来表示实体A与实体B的相异性,一般来讲,是一种量化的表示方式,则含有n个实体的集合X={x1,x2,…,xn}的相异度矩阵表示如下:
d(i,j)表示对象i和j之间的相异性的量化表示,通常它是一个非负的数值,当对象i和j越相似或接近,其值越接近0;两个对象越不同,其值越大。
并且有d(i,j)=d(j,i),d(i,i)=0。
目前最常用的的相似性度量函数为欧式距离,定义为:
i,j=1,2,…,n公式(2.1)
xi和xj代表任意两实体,k为实体的属性,n为实体数。
在相似性度量函数确定的基础上,对于如何判断一个聚类结果的优劣,我们还需要一定的判断准则,即聚类分析中的聚类准则函数,聚类准则函数是用来协助将全体实体尽可能准确的划分到相应的类簇中,聚类准则函数的好坏直接决定着聚类结果。
我们可以把聚类准则函数看成是一种判断聚类结果好坏的评价指标。
一般来说,确定聚类准则函数经常采用聚类目标函数法,目前比较常用的即聚类误差平方和准则函数,假定X={x1,x2,…,xn}表示一个实体(样本)的集合,xi表示第i个实体,i=1,2,…,n,我们要将X划分为k个类簇Cj,j=1,2,…,k,其中每一个类簇的中心为mj,j=1,2,…,k,此时,聚类误差平方和准则函数可表示如下:
公式(2.2)
在这里,i=1,2,…,n,而
Nj为第j个类簇中实体的数目。
2.3聚类的主要步骤
聚类的主要步骤由以下几个方面组成:
(1)数据预处理:
根据聚类分析的要求,对输入数据集进行特征标准化及降维等操作。
(2)特征选择及特征提取:
将由数据预处理过程得到的最初始的特征中的最有效的特征选择出来,并将选取出来的最有效特征存放于特定的向量中,然后对这些有效特征进行相应的转换,得到新的有效突出特征。
(3)聚类(分组):
根据需要选择合适的相似性度量函数对数据集中的数据对象相似程度进行度量,以此进行数据对象的聚类(分组)。
(4)对聚类结果进行评估:
依据特定的评价标准对聚类的结果进行有效评估,评估聚类结果的优劣,以此对聚类分析过程进行进一步的改进和完善。
聚类的主要步骤可以用图1来表示。
图1聚类的主要步骤
2.4聚类算法的研究方向
目前的研究方向包括下列几个方面[8]:
(1)算法的可伸缩性:
许多聚类算法在数据对象小于200个的小数据集合上工作得很好;而对于包含几百万个数据对象的大规模数据库进行聚类时,可能会导致有偏差的结果,这就需要聚类算法有高度的可伸缩性,能有效地处理海量数据。
(2)处理不同类型属性的能力:
许多算法被设计用于聚类数值类型的数据。
但在实际应用中可能要求聚类其它类型的数据。
如分类/标称类型(categorical/nominal),序数型(ordinal),二元(binary)数据,或者这些数据类型的混合。
(3)发现任意形状的聚类:
使用欧几里德距离或者曼哈坦距离的许多聚类算法来确定聚类。
基于这样的距离度量的算法趋向于发现具有相近密度和尺寸的球状簇。
但是,一个簇可能是任意形状的,提出能发现任意形状簇的算法是很重要的。
(4)用于决定输入参数的领域知识最小化:
在聚类分析中,许多聚类算法要求用户输入一定的参数,如希望簇的数目。
聚类结果对于输入参数很敏感,通常参数较难确定,尤其是对于含有高维对象的数据集更是如此。
要求用人工输入参数不但加重了用户的负担,而且也使聚类质量难以控制。
(5)对于输入记录顺序不敏感:
一些聚类算法对于输入数据的顺序是敏感的。
如对于同一个数据集合,以不同的顺序提交给同一个算法时,可能产生差别很大的聚类结果。
研究和开发对数据输入顺序不敏感的算法具有重要的意义。
(6)高维性:
一个数据库可能含有若干维或者属性。
很多聚类算法擅长处理低维数据,一般只涉及两到三维。
通常最多在三维的情况下能够很好的判断聚类的质量。
聚类数据对象在高维空间是非常具有挑战性的,尤其是考虑到这样的数据可能高度偏斜,非常稀疏。
(7)处理噪声数据的能力:
在现实应用中绝大多数的数据都包含了孤立点,空缺、未知数据或者错误的数据。
有些聚类算法对于这样的数据敏感,将会导致质量较低的聚类结果。
(8)基于约束的聚类:
实际应用中有可能需要在各种约束条件下进行聚类。
既要找到满足特定的约束,又要具有良好聚类特性的数据分组是一项具有挑战性的任务。
(9)可解释性和可用性:
通常用户希望聚类结果是可解释的,可理解的,和可用的。
也就是说,聚类可能需要和特定的语义解释和应用相联系。
3K-均值算法概述
3.1K-均值聚类算法的基本思想
K-均值聚类算法是聚类分析中的一种基本划分式方法。
在一九六七年由麦克奎因(MacQueen)首次提出[9]。
由于其算法简便易懂,且在计算速度上具有无可比拟的优势,通常被作为大样本聚类分析的首选方案。
因此成为了最大众化的聚类方法之一而被广泛应用。
K-Means聚类算法是一种常用的基于划分的聚类分析方法,该聚类算法的最终目标就是根据输入参数k(这里的k表示需要将数据对象聚成几簇),然后把数据对象分成k个簇。
该算法的基本思想:
首先指定需要划分的簇的个数k值;然后随机地选择k个初始数据对象点作为初始的聚类中心;第三,计算其余的各个数据对象到这个初始聚类中心的距离(这里一般釆用距离作为相似性度量),把数据对象划归到距离它最近的那个中心所处在的簇类中;最后,调整新类并且重新计算出新类的中心,如果两次计算出来的聚类中心未曾发生任何的变化,那么就可以说明数据对象的调整巳经结束,也就是说聚类釆用的准则函数是收敛的,表示算法结束(这里采用的是误差平方和的准则函数)。
分析误差平方和准则函数可以看出E是样本与聚类中心差异度之和的函数,样本集X给定的情况下E的值取决于c个聚类中心。
E描述n个样本聚类成c个类时所产生的总的误差平方和。
显然,若E值越大,说明误差越大,聚类结果越不好。
因此,我们应该寻求使E值最小的聚类结果,即误差平方和准则的最优结果。
这种聚类通常称为最小误差划分。
误差平方和准则函数适用于各类样本比较集中而且样本数目悬殊不大的样本分布。
当不同类型的样本数目相差较大时,采用误差平方和准则。
K-Means聚类算法属于一种动态聚类算法,也称作逐步聚类法,该算法的一个比较显著的特点就是迭代过程,每次都要考察对每个样本数据的分类正确与否,如果不正确,就要进行调整。
当调整完全部的数据对象之后,再来修改中心,最后进入下一次迭代的过程中。
若在一个迭代中,所有的数据对象都已经被正确的分类,那么就不会有调整,聚类中心也不会改变,聚类准则函数也表明已经收敛,那么该算法就成功结束。
无论是原始的K-均值聚类算法还是加入了聚类准则函数的K-均值聚类算法
都有一个共同的特点:
采用两阶段反复迭代的过程,算法终止的条件是不再有数据样本被重新分配:
1)指定聚类,即指定数据xi到某一个聚类,使得它与这个聚类中心的距离比它到其它聚类中心的距离要近。
2)重新寻找聚类中心。
3.2K-MEANS算法的基本工作流程
传统的K-MEANS算法的基本工作过程:
首先随机选择个数据作为初始中心,计算各个数据到所选出来的各个中心的距离,将数据对象指派到最近的簇中;然后计算每个簇的均值,循环往复执行,直到满足聚类准则函数收敛为止。
通常采用的是平方误差准则函数,这个准则函数试图使生成的k个结果簇尽可能的紧凑和独立。
其具体的工作步骤如下:
3.3K-MEAN算法的优缺点的比较
K-MEANS聚类算法的优点主要集中在:
算法快速、简单;对大数据集有较高的效率并且是可伸缩性的;时间复杂度近于线性,而且适合挖掘大规模数据集。
K-MEANS聚类算法的时间复杂度是O(nkt),其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目。
K-均值聚类算法的局限主要体现在:
(1)K-均值聚类算法中的聚类数目即K值需要由用户预先给出。
从K-均值聚类算法的算法流程中可以看出,K值作为一个需要预先确定的参数,在已知的前提下才能执行K-均值聚类算法,而在实际应用中,需要聚类的数据究竟要分成多少个类别,往往不是被用户所知的。
当聚类数目不被人所知的情况下,人们往往需要结合其它算法来获取聚类数目,即K值。
往往获取K值的代价要比K-均值聚类算法的代价大得多,因此K值的不确定性是K-均值聚类算法的一个很大的不足之处。
(2)K-均值聚类算法严重依赖于初始簇中心点的选取。
K-均值聚类算法随机的选取K个初始簇中心点,并针对这K个簇中心点进行迭代运算,即重新分配数据点和重新计算簇中心的运算,直到所有的数据点位置不再变化或聚类误差准则函数不再变化。
这样就导致了K-均值聚类算法对初始簇中心点的严重依赖性。
初始簇中心点选取不当很容易造成聚类结果陷入局部最优解甚至或导致错误的聚类结果。
(3)K-均值聚类算法的聚类结果容易受噪音点数据的影响。
在K-均值聚类算法中,每次对于簇中心的重新计算,都是通过对每一个类簇中所有数据点求均值,这样,当数据集中存在噪音点数据时,均值点的计算将导致聚类中心(即簇中心)偏离数据真正密集的区域,而趋向噪音点数据歹这样导致聚类结果的不准确。
因此,当数据集中存在远离所有数据点的噪音点时,聚类结果将很大程度上受这些噪音点的影响,导致聚类结果的错误,所以K-均值聚类算法对噪声点和孤立点非常敏感。
(4)K-均值聚类算法无法发现任意形状的簇。
K-均值聚类算法采用距离函数作为度量数据点间相似度的方法,这里的距离函数多采用欧氏距离,同时采用聚类误差平方和准则函数作为聚类准则函数,对于基于欧式距离的聚类算法而言,其只能发现数据点分布较均匀的类球状簇,对于聚类误差平方和准则函数而言,当类簇大小差别较大,形状较不规则时,容易造成对较大的类簇进行分割来达到目标函数取极小值的目的,因此容易造成错误的聚类结果。
(5)K-均值聚类算法不适用于大数据量的聚类问题。
K-均值聚类算法每次迭代过程都要调整簇中心及重新分配数据点,因此,当数据量比较大的时候,这些迭代过程的计算量是相当大的,算法的时间开销也是巨大的,因此,由于需要大量的计算时间,因此K-均值聚类算法在待聚类数据量较大的时候并不适用。
3.4K-MEANS算法的改进及研究现状
文献[10]中提出了一种基于半监督K-MEANS的k值全局寻优算法,它的思想是将k值从原始类别数递增,在完整的数据集{U,L}上进行constrained-K-Means聚类,当聚类后得到的空簇(空簇指的是某一簇中不包含任何标记的数据)的频率大于设定值时,算法结束,计算k取不同值时的被错误标记的数据总数N,找出最优参数k。
文献[11]采用了一种RPLC算法,结合全协方差矩阵,逐步删除只含少量数据的类。
文献[12]采用了一种竞争学习规则:
次胜者受罚机制,来自动地生成适当数量的类,其思想就是:
针对输入的聚类个数k值,一方面用修正竞争方法来获胜单元权值的方法来适应输入的k值,另一方面针对次胜单元采取惩罚的方法,使它与输入的值尽可能的远离。
文献[13]提出了多中心聚类算法,首先运用两阶段的最大最小距离方法搜索出最佳的初始中心,再用合并算法将最初的已经划分成小类的数据集合并形成终类,也就是说利用多个中心来共同代表一个较大形状的簇。
文献[14]中提出通过求解每个数据点的密度参数,而后选取个高密度点作为初始聚类中心,有效的解决了算法随机选取初始聚类中心造成的聚类结果的不稳定性和不准确性。
文献[15]中,通过一定的相似性准则来去掉聚类中心的候选集进行改进算法的时间复杂度。
文献[16]中,K-Means算法对样本数据进行聚类的时候,将选择初始中心和一次迭代完成对数据的调整建立在随机选择样本数据的基础上,这样就可以提高算法的收敛的速度。
文献[17]中提出了一种新的基于参考点和密度的改进算法,算法思想是首先通过参考点来准确反映数据对象的空间特征,而后对数据基于参考点进行分析与处理(前提是需要参考点能够准确的反应数据特征)。
文献[18]的作者在深入分析K-均值聚类算法和层次聚类算法各自优缺点的基础上,结合K-均值聚类算法的高效性和层次聚类算法聚类精度高的优势,提出一种有效的混合聚类算法,在一定程度上克服了K-均值聚类算法和层次聚类算法各自的缺陷。
文献[19]提出一种基于变长编码的改进遗传算法,并将该改进遗传算法和K-均值聚类算法有机融合,兼顾初始聚类中心的优化及最佳聚类数目K值的学习机制,有效地解决了K-均值聚类算法对初始中心选取敏感及聚类数目K值需事先人工给定的问题。
文献[20]提出了一种基于加权方法的改进K-均值聚类算法,该改进算法可以有效消除噪声数据和孤立点数据对聚类结果的影响,且可以处理具有符号属性的数据。
文献[21]提出了一种基于密度及最近邻相似度的初