您好,欢迎访问三七文档
模式识别实验报告学生姓名:班学号:指导老师:机械与电子信息学院2014年6月基于K-means算法的改进算法方法一:层次K均值聚类算法在聚类之前,传统的K均值算法需要指定聚类的样本数,由于样本初始分布不一致,有的聚类样本可能含有很多数据,但数据分布相对集中,而有的样本集却含有较少数据,但数据分布相对分散。因此,即使是根据样本数目选择聚类个数,依然可能导致聚类结果中同一类样本差异过大或者不同类样本差异过小的问题,无法得到满意的聚类结果。结合空间中的层次结构而提出的一种改进的层次K均值聚类算法。该方法通过初步聚类,判断是否达到理想结果,从而决定是否继续进行更细层次的聚类,如此迭代执行,生成一棵层次型K均值聚类树,在该树形结构上可以自动地选择聚类的个数。标准数据集上的实验结果表明,与传统的K均值聚类方法相比,提出的改进的层次聚类方法的确能够取得较优秀的聚类效果。设X={x1,x2,…,xi,…,xn}为n个Rd空间的数据。改进的层次结构的K均值聚类方法(HierarchicalKmeans)通过动态地判断样本集X当前聚类是否合适,从而决定是否进行下一更细层次上的聚类,这样得到的最终聚类个数一定可以保证聚类测度函数保持一个较小的值。具体的基于层次结构的K均值算法:步骤1选择包含n个数据对象的样本集X={x1,x2,…,xi,…,xn},设定初始聚类个数k1,初始化聚类目标函数J(0)=0.01,聚类迭代次数t初始化为1,首先随机选择k1个聚类中心。步骤2衡量每个样本xi(i=1,2,…,n)与每个类中心cj(j=1,2,…,k)之间的距离,并将xi归为与其最相似的类中心所属的类,并计算当前聚类后的类测度函数值J(1)。步骤3进行更细层次的聚类,具体步骤如下:步骤3.1根据式(5)选择类半径最大的类及其类心ci:ri=max||xj-ci||,j=1,2,…,ni且xj属于Xj(5)步骤3.2根据距离公式(1)选择该类中距离类ci最远的样本点xi1,然后选择该类中距离xi1最远的样本点xi2。步骤3.3以这两个点和其他聚类中心作为初始聚类中心重新做k均值聚类。步骤4设ε=J(t)-J(t-1)/J(t-1),若εΔ,则返回步骤3继续迭代执行;否则算法结束,输出聚类结果X®{X1,X2,…,Xk}。实验结果及分析文中作者为比较层次K均值聚类算法中类个数选择方法与传统基于随机选择聚类个数的K均值算法的有效性,在四个标准数据集上(见表1)进行了实验,并与传统的经典随机选择初始聚类中心的K-means方法作了比较。由图1可以看出,采用传统的K均值聚类方法,数据集ASL在聚类达到25类后,聚类衡量函数值的减小变得平缓,因此,该数据集聚为25类是比较合适的同理,对于数据集Banana、Breast_cancer、Spambase来说,最佳聚类个数分别为20、25、30。由于采用传统K均值聚类方法开始无法得到最优的聚类个数,但是,采用本文提出的方法可以自动地获取聚类的个数,最终在四个数据集上到的聚类个数分别为28、22、24、31,与传统K均值方法多次实验比较得到的最优聚类个数是一致的。方法二:基于密度的加权K-Means算法K-Means算法存在需要输入聚类数目以及对初始聚类中心敏感等缺陷,本文提出了一种基于密度的加权K-Means聚类算法来初始化聚类中心。该算法定了点的密度函数和聚类中心函数,通过一定评价函数获取聚类中心。该方法获取聚类中心不仅周围密度比较大,而且各个聚类中心之间相关性比较小,从而有效的减少了聚类时间,提高算法效率。称其为基于密度的加权K-Means(DensityWeightK-Means,DWKM)。原理为:设模式向量样本{X}={X1,X2,…,Xn},且模式样本集被分为Sc类,即S1,S2,…,Sc,Mj为Sj均值向量,即其中Nj为Sj的样本数目,则可以定义其准则函数:而Min(MSE)为DWKM算法终止条件,其中‖X-Mj‖为欧式距离。为了更好体现每个点密度,定义一个vi密度函数:其中dij为(4)式中p为X的属性数目,kr为各个属性的权重;显然当vi很小时,说明其周围点的密度相对比较大,这样Min(vi)就是一个较好的初始中心。然后假设已经找到q(q<k)个聚类中心m1,m2,…,mq,为了保证剩下聚类中心与已有聚类中心的聚类距离较远,并且周围密度比较大,定义一个聚类中心引力函数fi:计算q个聚类中心对第i个点的引力,引力越小说明和已经找到的聚类中心关系越小,因此取n个中引力最小的一个点为下一个聚类中心mq+1,即Min(fi),i=1,2,…,n(6)通过上述算法可以精确找到Sc个初始聚类中心,在此基础上进行K-Means聚类。具体步骤如下:①(第一点选择)计算每两个点之间欧式距离,然后按密度函数(式(3))计算每个点的密度,选择密度最大的一个点最为第一个聚类中心,设q=1;②(结束条件)if(q>k),聚类中心初始化完毕转到步骤④;③(选择其他聚类中心)利用公式(5)找到最小点xi为新的聚类中心,q=q+1,转到步骤②;④(K-Mean聚类)利用已经获得聚类中心m1,m2,…,mk,进行K-Means聚类。实验结果及分析为了证明DWKM算法有效性,作者对K-Means和DWKM算法做对比实验对K-Means聚类算法和DWKM算法的结果,可以看出DWKM算法不仅很好地解决了K-Means的随机性,而且从总体精度Pc和运行时间上看,降低了错误率,提高了算法的效率。为了证明加权对聚类结果的影响,分别取不同的加权系数,通过测试数据Iris,说明加权能够得到更好的聚类结果。从表可以看出,通过加权系数可以得到比较好的聚类结果,并且从MSE上可以出,当MSE小的时候其总分类精度Pc不是最优解,因此算法准则函数MSE有待改进。方法三:基于集对分析的遥感图像K-均值聚类算法基于欧式距离的K-均值聚类算法是一种硬分类(把每个待辨识的对象严格地划分到某个类中)方法,面对具有不确定性和混合像元特征的遥感图像数据,传统K-均值聚类算法很难得到满意的分类结果。为解决这一难题,将集对分析(setpairanalysis,SPA)理论推广到遥感图像聚类算法,通过引入一个能统一描述同一性、差异性和对立性的同异反(identicaldiscrepancycontrary,IDC)联系度,提出了基于IDC联系度的改进的K-均值聚类算法。该方法克服了传统K-均值算法硬分类的缺陷,可以有效地提高遥感图像聚类精度。对Landsat5TM卫星数据的聚类分析实验表明,在含有混合像元的遥感图像地物覆盖分类中,改进的K-均值聚类方法的分类效果要优于传统K-均值聚类方法。该算法的具体实现步骤如下:设定输入数据集X={x1,x2,…,xn},聚类簇个数K,差异度系数i,最大循环次数I;输出为满足“误差平方和最小”标准的K个聚类Ck。步骤一初始化。令I=1,随机选取K个初始类簇中心mk(1),k=1,2,…K;步骤二计算IDC联系度。计算待分类样本xl与聚类中心mk的IDC联系度μlk;步骤三分配xl。计算样本点xl与这K个簇中心之间的IDC距离Dlk,如果满足Dlk=min{Dlk,k=1,2,…,K},则xl∈Ck;步骤四修正簇中心Ck。令I=I+1,重新分配K个新的聚类中心,即步骤五计算误差平方和J,即步骤六收敛判断。如果J值收敛,则返回mk(I),k=1,2,…,K;算法结束;否则,返回步骤二。实验结果及分析为了评价改进算法的聚类性能,选取一景多光谱遥感图像作为实验数据,并与传统K-均值算法进行比较。通过作者的对比我发现,与传统K-均值聚类方法相比,利用基于SPA改进的K-均值聚类方法对含混合地物的土地覆盖能得到更精确的划分。根据表2及表3,发现对于建筑用地、植被稀疏地、草地和林地的错分、漏分误差,基于SPA的改进算法要低于传统K-均值算法;对于总体分类精度和Kappa系数,基于SPA的改进算法明显高于传统K-均值算法。改进的K-均值聚类方法利用同异反(IDC)联系度来度量样本间的相似性,尝试解决传统K-均值算法在含有混合像元的遥感图像地物覆盖分类中由硬分类造成分类精度不高的问题。实验结果显示,在传统K-均值聚类算法面对具复杂特征的遥感图像数据无法获得较好聚类效果时,基于SPA改进的K-均值聚类算法仍然能够获得较好的聚类效果。参考文献【1】胡伟,改进的层次K均值聚类算法,计算机工程与应用,2011-10-24【2】万广通;王行风,基于密度的加权K-Means算法,测绘科学,2013-07-20【3】谢相建;赵俊三;陈学辉,袁思,基于集对分析的遥感图像K-均值聚类算法,国土资源遥感,2012-12-15【4】王晓丹,高晓峰,姚旭等,SVM集成研究与应用[J],空军工程大学学报:自然科学版,2012-2-13【5】武佳薇,李雄飞,孙涛等,邻域平衡密度聚类算法[J],计算机研究与发展,2010心得体会学习了模式识别这门课程,我学会了利用Matlab软件对遥感图像进行简单的处理,可为遥感影像的判读提供良好的条件,从而提高判读精度,还学会了使用软件ENVI,对遥感图像进行数据处理、图像分类等等,学会了通过K-means算法对遥感图像进行分类,但是过程中遇到了不少问题,比如程序运行的速度过慢等等。由于自身能力的不足,前三次实验在自己的努力和同学的帮助下,我还是圆满的完成了,但是第四次实验对于我来说难度偏大,虽然理解了算法思想但是无法实现。总的来说学习了模式识别,让我对ENVI产生了兴趣,并且充分认识到了自己的不足,今后我会专心研读书籍资料,不懂的地方向同学学习,增强自己的编程能力。
本文标题:模式识别课程报告
链接地址:https://www.777doc.com/doc-6541791 .html