模式识别报告KmeansWord格式.docx
- 文档编号:17324651
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:10
- 大小:60.96KB
模式识别报告KmeansWord格式.docx
《模式识别报告KmeansWord格式.docx》由会员分享,可在线阅读,更多相关《模式识别报告KmeansWord格式.docx(10页珍藏版)》请在冰豆网上搜索。
5.2.2基于遗传算法的解决方法5
5.2.3其他解决方法6
5.3初始聚类中心的选择的改进6
5.3.1基于密度的解决方法7
5.3.2基于优化算法的解决方法7
5.3.3其他解决方法8
5.4处理分类属性数据的改进9
6结语9
1引言
随着信息技术和计算机技术的迅猛发展,人们面临着越来越多的文本、图像、视频以及音频等数据资源,为帮助用户从大量无序的数据中发现隐含的、有价值的、可理解的知识,为用户提供问题求解层次的决策支持能力,数据挖掘技术应运而生。
聚类分析是数据挖掘中一种重要的分析方法,它的目标是将数据集合分成若干簇,使得每个簇中的数据之间最大程度地相似,而不同簇中的数据最大程度地不同。
学界提出了多种基于不同思想的聚类算法,包括基于划分的算法、基于层次的算法、基于密度的算法、基于网格的算法和基于模型的算法等。
这些算法都能取得不错的聚类效果,其中应用最多且算法思想较为简单的是基于划分的K-means算法。
2K-means算法思想
1967年,MacQueen总结了Cox、Fisher、Sebestyen等的研究成果,提出了K-Means算法,并用数学方法进行了证明。
算法把每样本点分为k簇,簇内的样本点具有较高的相似性,而簇间的样本点相似程度较低,相似度的计算是依据簇中样本点距离的平均值来进行的。
算法的处理过程如下:
1)在样本数据集D中选择k个样本点,将k个样本点值分别赋给初始聚类中心:
;
2)对D中的所有样本点
,依次计算到各簇中心
的距离:
3)找出
到
的最小距离
,将
归入到离
距离最小的簇中;
4)重新计算各簇的聚类中心:
5)按式
(1)计算数据集D中的所有点的平均误差
,并与前一次误差
比较;
6)若
转2),否则算法结束。
3K-means算法优势
K-Means算法优点是可以处理大数据集,K-means算法是相对可伸缩的和高效率的,因为它的计算复杂度为
,其中
为对象个数,
为聚类个数,
为迭代次数,通常有
,
,因此它的复杂度通常也用
表示。
4K-means算法缺陷
4.1聚类个数k的选择
聚类结果依赖于初始值的设定,但是k值的选定往往要经过很多次实验才能找到最佳聚类个数。
4.2初始聚类中心的选择
K-means算法采用随机法选取初始聚类中心,选取点的不同,聚类结果可能就不同,这样的依赖性就导致聚类结果的不稳定性,且容易陷入局部最优而非全局最优聚类结果。
4.3对噪声点和孤立点很敏感
K-means方法考虑不采用簇中对象的平均值作为参照点,选用簇中位置最中心的对象,即中心点。
这样划分方法仍然是基于最小化所有对象与其参照点之间的相异度之和的原则来执行的。
4.4只能发现球状簇
K-means算法常采用基于欧几里德距离的误差平方和准则函数作为聚类准则函数,如果各类之间区别明显,即各个簇间的相似度很低,那么误差平方和准则函数比较有效;
但是相反情况,则可能出现将大的聚类进一步分割的现象。
5K-means算法缺陷改进
5.1聚类收敛条件的改进
K-means算法通过不断地迭代与重新计算聚类中心直至收敛,因此聚类收敛条件是算法的重要组成部分。
在最初的算法中,MacQueen以平方距离和
为目标函数,作为聚类质量的衡量标准,并证明了
的收敛性。
1978年Hartigan分析了一维情况下的算法,令k=2即将全部数据点分割成两个簇,证明了可以用概率收敛点来定义最佳的分割点。
Pollard考察了多维空间的情况,并将Hartigan的结论推广到多维空间,提出了K-means算法新的聚类质量评价标准,即在保证
收敛的同时,还需保证各聚类中心也收敛到最优解。
Creator等的研究发现,由于目标函数
存在局部极小值点,K-means算法会陷入局部最优解。
为了使聚类结果尽量接近全局最优解,需要在算法中加入新的机制,而这些改进都以牺牲目标函数
的收敛速度为代价。
其中较著名的是1995年Chinrungrueng等提出的改进算法,该算法在原有算法中加入了两种新的机制,分别是允许算法在自适应过程中摆脱目标函数
的干扰;
采用反馈方式,根据当前聚类质量动态地调整算法的收敛速度。
由于
计算的是所有数据点到其聚类中心的距离平方和,因而事实上其反映的仅仅是类内距离的度量,而根据聚类算法的基本思想,即聚类算法应使聚簇内相似度尽可能大,而聚簇间相似度尽可能小的基本原则,聚类收敛函数应该综合考虑类内距离和类间距离。
为此,学界提出了很多改进的聚类收敛函数,以期更加全面地反映聚类的质量。
其中大多数的改进都是采用类内紧密性(Within-clusterScatter)与类间分散性(Between-clusterSeparation)的比值来作为收敛函数,这样当收敛函数收敛到极小值时,类内紧密性和类间分散性都可以达到较优值。
著名的Davies-Bouldin指数(DBI)和Dunn指数(DI)都是采用这种思想,Davies-Bouldin指数是计算类内距离之和与类间距离之和的比值,而Dunn指数是计算类内距离和类间距离的最值之比。
5.2k值的选取的改进
和很多聚类算法一样,K-means算法需要事先确定k值,k值的选取很大程度上会影响算法的性能。
Rezaee等根据经验规律认为最佳的聚类数应该在2与
之间,其中N为数据空间中的所有数据点的个数。
学界对K-means算法最优聚类数的确定进行了深入的研究,提出了多种解决方法。
5.2.1基于聚类有效性函数的解决方法
基于聚类有效性函数的解决方法是一种十分简单的解决方法,通过在
区间逐个选取k值,并利用聚类有效性函数评价聚类效果,最终得到最优的k值,这种解决思想的关键是提出优秀的聚类有效性函数。
经典的K-means算法所选用的聚类有效性函数是
指数,在此基础上许多学者提出了改进,学界公认较优秀的有MH指数、DB指数、Dunn指数、GeneralizationofDunn’sIndex等。
在国内,许多学者也按照这种思想提出了一系列的解决方法。
李永森等提出的距离代价函数综合了类间距离和类内距离两项距离函数,类间距离为所有聚类中心到全域数据中心的距离和。
类内距离即所有类中对象到其聚类中心的距离之和。
作者证明了当距离代价函数取得最小值时,此时对应的k值为最佳聚类数。
张逸清等在K-means算法的目标函数中加入一个新的数据项。
该数据项用于衡量其他邻近聚类中心与当前聚类中心的距离平方和,并引入一个权值
,用于调节新数据项在整个目标函数中所占的比例。
当算法初始k值过大时,在聚类算法的前期训练中,新数据项的引入就可以使得聚类中心彼此靠近,然后考察聚类中心两两之间的距离值,若小于设定阈值,则将其合并,这样得到的k值更加接近最优解。
张忠平等提出了一种基于二分均值聚类的k值决定方法。
算法思想为:
首先设定两个阈值:
簇内相似度
和簇间相似度
在整个数据集上运行二分k均值聚类算法,得到两个类C1和C2,考察C1和C2的簇内相似度,若大于阈值
,则继续运行二分k均值聚类算法,不断迭代以上过程,最终得到所有的类簇内相似度都小于
计算所有类的簇间相似度,将簇间相似度小于
的类合并,最终得到的类的个数即为k值。
该算法思想比较简单,通过两步分裂和合并的过程,得到较好的k值。
算法中最重要的问题是确定阈值
和
值,这两个阈值决定了数据分裂和合并的效果。
作者采用了概率统计的方法确定
值,计算文本集中两两文本之间相似度的均值
和标准差
,并根据实际应用中对簇内相似度的要求给出了一个系数
,从而可以利用公式
计算出较优的
值。
在确定另一个阈值
时,通过实验证明了
时,合并的效果最好。
5.2.2基于遗传算法的解决方法
遗传算法在k值选择的研究中也得到了学者的重视。
Bandyopadhyay等提出了基于遗传算法的GCUK算法。
该算法的染色体采用字符串方式编码,即将每一个初始聚类中心的坐标按顺序编码,没有作为初始聚类中心的数据点则以符号“
”表示,编码完成后在逐代交叉中最终得到最佳的k值。
该算法的缺点是染色体的字符串表示方法大大增加了算法的开销。
为了解决该问题,Lin等采用了二进制方式进行染色体编码。
该编码方案采用染色体长度作为数据集的大小,被选为初始聚类中心的数据点编码为1,否则为0。
Liu等在此基础上提出了AGCUK算法,在染色体编码时为每一个染色体选用
个基因(k为随机选取的聚类数目,m为数据点的维度),前m个基因表示第一个初始聚类中心的坐标,接着m个基因表示第二个初始聚类中心的坐标,以此类推完成编码,通过染色体的逐代交叉动态改变k值,此外,在遗传过程中算法还运用了最佳个体保留法,把具有最高适应度的个体不经交叉直接遗传到下一代,最终即可得到最佳的k值。
5.2.3其他解决方法
Xu等提出了RPCL原则,该原则可以在聚类过程中自动确定适当的k值。
其主要思想是:
对于每个输入而言,对获胜单元的权值予以修正以适应输入值,同时对次胜单元进行惩罚,使之远离输入值。
这样经过多次竞争学习之后,就可以使权值向量趋向于聚类中心。
Pelleg等提出了X-means算法用于解决k值选定的问题。
算法的主要步骤为:
首先通过经典的K-mean算法对数据集聚类,得到k个聚类中心;
对聚类所得的k个类逐个进行聚类,再运用贝叶斯信息标准(BIC)进行判断,如果BIC标准得分更高,则采用新的聚类中心,否则回到原来的聚类,算法经过O(k)的时间开销,就可以寻找到最佳的k值。
综合上述研究可以发现,学界已经提出了多种k值选取方法,并分别基于不同的思想。
基于聚类有效性函数的解决方法算法思想简单,但是需要付出较大的时间开销,遗传算法作为一种优秀的优化算法,应用于k值的确定是十分有效的。
目前,多种k值确定算法都运用了遗传算法或者类似于遗传算法的方法,这些算法聚类效果的优劣取决于染色体的编码方式,在编码时既需要兼顾进化速度,又需要保证得到令人满意的进化结果。
RPCL算法通过吸引竞争获胜者,并推开次胜者的方法确定聚类中心和k值,目前已经比较成熟,在文本聚类中应用广泛。
其他的如X-means等算法的聚类效果也都得到了实验结果的证明。
5.3初始聚类中心的选择的改进
在X-means算法中,初始聚类中心是随机选取的,因此可能造成在同一类别的样本被强行当作两个类的初始聚类中心,使聚类结果最终只能收敛于局部最优解,因此X-means算法的聚类效果在很大程度上依赖于初始聚类中心的选择。
针对该问题,学界提出了多种改进的算法Duda等在实现X-means算法时采用了最简单的解决办法,即进行多次初始聚类中心的选择并聚类,从中找到最优解。
该解决办法思想非常简单,但在数据量较大时实用价值不大。
5.3.1基于密度的解决方法
基于密度的初始聚类中心选择方法是根据聚类对象数据点的密度分布情况选择初始聚类中心,这样可以很好地避免初始聚类中心过于密集的情况发生。
基于密度的解决方法有许多种,其中具有代表性的有:
1994年,Katsavounidis等提出一种简单的解决方法,即尽可能分散初始聚类中心,算法思想为:
D为数据集,C为初始聚类中心集合,先选择D边界上的点c1作为第一个聚类中心,加入集合C中,然后使用距离c1最远的点c2作为第二个聚类中心,也加入集合C中
。
随后迭代计算其值,选择符合条件的点作为初始聚类中心。
事实上,该式就是计算空间中的每个点与已经被选取的聚类中心的距离,找出离该点最近的聚类中心,然后比较它们与最近聚类中心的距离,选出距离最大的点作为聚类中心。
2004年,Khan等提出了CCIA算法,其主要思想是利数据点的均值、标准差、百分位数等统计信息提供数据点的密度分布信息,可以得到m个描述数据的标签信息,在标签上进行聚类得到
(
)个聚类中心,然后进行合并,从而得到初始聚类中心,通过在多个数据集上的实验,证明了CCIA算法的优越性。
2007年,牛琨等提出了基于密度指针的初始聚类中心选择算法DP。
DP算法以网格单元的几何中心为对称中心,连接该中心与网格单元各顶点,形成超三角形子空间;
进而根据各超三角形子空间与邻居单元相邻的超三角形子空间的密度差异确定密度指针的方向,并根据密度指针计算出每个密集网格单元的聚集因子;
最后将具有较大局部聚集因子的网格单元簇的重心作为初始聚类中心。
5.3.2基于优化算法的解决方法
随着研究的深入,许多优化算法也被应用于初始聚类中心的选择。
其中模拟退火算法以其高效的寻优效率被广泛应用。
模拟退火算法是模拟物理学上固体退火过程的一种寻优算法,最早由Metropolis等在1953年提出。
20世纪80年代,模拟退火算法被应用到组合优化问题,算法思想为:
先设定一个初始解X作为当前解,并设定初始温度C作为控制参数;
然后在当前解的邻域中随机产生一个新解
,计算转移概率,如果新解优于当前解,则置转移概率为1,如果新解劣于当前解,则赋予一定的转移概率,转移概率的计算公式为
,不断迭代以上过程,最终以概率1得到全局最优。
由于模拟退火算法在优化过程中允许目标函数以一定的概率恶化,因此可以避免其他算法容易陷入局部最优解的问题。
1989年,Klein等进行了实证研究,对模拟退火算法和经典K-means算法的聚类效果进行了比较,结果表明模拟退火算法获得了较好的聚类效果,但是算法的时间复杂度增加明显。
2009年,Dong等先通过二分K-means算法将数据集分为k个大类,再利用模拟退火算法优化聚类中心,提高了聚类的准确度。
和模拟退火算法一样,遗传算法也被应用于初始聚类中心的优化。
1991年,Bhuyan等提出可以用遗传算法改进聚类效果,随后Jones等,Babu等也相继提出应用遗传算法改进K-means算法初始聚类中心的思路。
基于此,1999年,Krishna等提出GKA算法(GeneticK-meansAlgorithm)。
在此前的算法中,染色体交叉和适应度计算存在一个矛盾,即优化一方的计算复杂度会影响到另一方的速度,而GKA算法采取了效率更高的染色体编码方案解决了该问题。
2000年,Maulik等在多个人工数据集和现实数据集中对应用遗传算法优化后的K-means算法进行了测试,得到了明显优于传统K-means算法的聚类效果。
2007年,Laszlo等采用了新的交叉算子改进了该算法,实验结果证明,在基准测试程序和大规模数据集上,都得到了更优的实验效果。
5.3.3其他解决方法
除了上述方法外,国内外学者还提出了一些其他的解决方法,都取得了良好的聚类效果。
1998年,Bradley等提出了RA(RefinementAlgorithm)算法,其主要思想是将原始数据集分为J个子集,运用K-meansMod算法对J个子集进行聚类,(K-meansMod算法是Bradley等对K-means算法的修改,主要的不同在于对空类的处理),得到聚类中心集,共J×
K个点,再分别对这J×
K个点运用K-mean算法,得到的k个类中心作为最终初始聚类中心。
2004年,刘立平等在RA算法基础上提出了一种新的初始聚类中心选择方法,算法思想为:
首先从原始数据集中抽取一个样本集,在样本集中随机选择Pk个(p为常数)初始聚类中心,运用K-means算法得到Pk个类。
去除较小的类,对剩余的类运用聚类算法聚成k个类,得到k个聚类中心,再选用离这些聚类中心最近的数据点作为初始聚类中心。
算法通过两步聚类保证初始聚类中心分别属于不同的类,经过实验证明比RA算法具有更好的聚类效果。
2005年,王汉芝等利用超立方体技术,首先将数据中心划分为几个区间,并计算每个区间的超立方体编码,再利用超立方体编码计算K-means算法的初始聚类中心。
2008年,Zalik提出的算法很好地解决了K-means算法的两个问题:
k值和初始聚类中心的选择。
即构建一个耗损函数,通过两步使得函数取得全局最小值,第一步通过初始聚类给每一个类赋予至少一个聚类中心,第二步在迭代中算法自动惩罚可能获胜的非全局最优点,最终通过调整聚类中心使得耗损函数最小化。
当耗损函数取得最小值时,正确的聚类数k值和初始聚类中心也就同时确定。
5.4处理分类属性数据的改进
传统的K-means算法只适用于处理数值属性的数据,而对于分类属性和混合属性数据集则不太适用。
围绕该问题,国外学者提出了众多解决方法,1995年Ralambondrainy提出将分类属性转化为多个取值为0和1的数值属性,再运用K-means算法的思路;
1997年、1998年Huang分别提出了适用于纯分类属性数据集的K-modes算法和适用于混合属性数据集的K-prototypes算法。
除了提到的三种算法以外,2010年Roy等还提出了基于遗传算法的混合属性数据聚类K-Means算法,采用新的染色体编码方案和适应度计算方法解决了混合属性数据的相似度计算问题。
这些算法的提出使得K-Means算法具备了处理分类属性以及混合属性数据的能力,拓展了K-Means算法的应用领域。
6结语
K-means的发展其实就是对算法中存在的缺点的改进的过程,下面是两点自己的看法:
K-means算法通过计算两个样本的距离来判断它们的相似度,但是在现实中,一个对象往往包含多个属性,在不同的场景中,每个属性在分类的过程中起的作用大小是不一样的,以至同一个样本分类可能是不一样的。
所以我们在计算相似度的时候,应该考虑到样本中每个属性的重要程度,也就是在每个属性上加上相应的权值来做区分,由于距离越小越好,所以对于分类比较重要的属性,应该赋以较低的权重。
人工神经网络在分类上也有广泛应用,我们是否可以将K-means算法和人工神经网络结合起来。
例如,当属性值太多的时候,有些属性内部可能存在相互关联,而通过稀疏自编码的方式恰恰可以用比较少的属性代替这种比较多属性的对象,减少其相关性,将获取的这些少量属性进行K-means聚类。
当然,在K-means算法提出至今的40多年里,大量的研究集中在算法思想上,现在,我们想仅仅通过改进算法来大规模提高聚类效果的设想已经变得十分困难。
我们是否可以通过一些其它学科的东西或K-means的运用来改善我们本学科对K-means聚类的运用,这也是我以后得花时间深入探索和研究的。
最后,感谢苗老师和实验室的师兄妹这个学期以来对我的指导和帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模式识别 报告 Kmeans
