聚类分析模式识别.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
聚类分析实验 一、实验目的 加深对K 均值聚类分析算法的理解,掌握K 均值聚类分析分类器的设计方法。 二、实验内容 根据实验数据设计K均值聚类分析分类器,实验数据采用遥感彩色图像,以图像的所有象素为样本集,每一象素点的R、G、B值作为其特征向量。 1)选择合适的类别数K和初始聚类中心。 2)选择距离测度。 3)设计迭代中止条件,或人为设定迭代次数。 4)循环迭代结束时,各类的所有象素其R、G、B值用各类中心的R、G、B值表示,画出分类结果图。 5)分析不同初始聚类中心和迭代条件对分类效果的影响。 三、实验思路 利用K均值算法的思路,根据其步骤,将实验分为以下几步: 1、本实验中选定K=5,即选K个聚类中心,任选K个样本为初始聚类中心; 2、分别计算每个样本到各聚类中心的距离,按照最小距离原则,将全部样本分配到K个聚类中; 3、利用下式计算重新分类后的各聚类中心 j=(1,2,3) 4、比较新的聚类中心和旧的聚类中心之间的距离,如果它们的距离小于等于0.01,则认为两聚类中心相等,跳出迭代,否则转2,进行迭代,直至达到最大迭代数; 5、分类结束,将所有样本分成K类,各类值都与其对应聚类中心值相等。画出图像,算法结束。 四、实验结果 最后的聚类中心和一共迭代次数为: 五、附录 close all;clear all;clc; %读取图像 f=imread(D:\model.bmp); figure; imshow(f); title(未聚类前图像) S=size(f);%得到图像矩阵,发现它是247*203*3矩阵 hd=double(f); r=hd(:,:,1);%把三原色分开,红 g=hd(:,:,2);%绿 b=hd(:,:,3);%蓝 %任选K个初始聚类中心 z(1,:)=[r(50,40),g(50,40),b(50,40)]; z(2,:)=[r(200,40),g(200,40),b(200,40)]; z(3,:)=[r(50,160),g(50,160),b(50,160)]; z(4,:)=[r(200,160),g(200,160),b(200,160)]; z(5,:)=[r(120,100),g(120,100),b(120,100)]; %按最小距离原则,将全部样本分配到K个聚类中 for m=1:100%最大失代次数 %x1=[];x2=[];x3=[];x4=[];x5=[]; zz=zeros(5,3); k=zeros(5,1); for rr=1:S(1,1); for ll=1:S(1,2); %计算样本到各聚类中心的距离 for nn=1:5 dt(nn,1)=([hd(rr,ll,1),hd(rr,ll,2),hd(rr,ll,3)]-z(nn,:))*([hd(rr,ll,1),hd(rr,ll,2),hd(rr,ll,3)]-z(nn,:)); end [yy,xx]=min(dt);%得到样本距离其中一个中心距离最小 k(xx,1)=k(xx,1)+1; zz(xx,:)=zz(xx,:)+[r(rr,ll),g(rr,ll),b(rr,ll)]; zb(xx,k(xx,:),:)=[rr,ll];%标记坐标号 end end for n=1:5 zt(n,:)=zz(n,:)/k(n,1);%重新计算各聚类中心 dz(n)=sqrt((zt(n,:)-z(n,:))*(zt(n,:)-z(n,:)));%计算新旧聚类中心的距离 z(n,:)=zt(n,:);%聚类中心更新 end if max(dz)=0.01 %如果新老聚类中心的距离=0.01则认为相等 break; end end %所有样本的值都与其聚类中心的值相等 for n=1:k(1,1) hd(zb(1,n,1),zb(1,n,2),1)=z(1,1); hd(zb(1,n,1),zb(1,n,2),2)=z(1,2); hd(zb(1,n,1),zb(1,n,2),3)=z(1,3); end for n=1:k(2,1) hd(zb(2,n,1),zb(2,n,2),1)=z(2,1); hd(zb(2,n,1),zb(2,n,2),2)=z(2,2); hd(zb(2

文档评论(0)

liwenhua11 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档