(完整word版)模式作业设计.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文档。上传文档
查看更多
1.1 题目 给出 K- 均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本(图 2.13),并给它们进行聚类分析。 1.2 算法原理 K- 均值算法也称 C-均值算法,是根据函数准则进行分类的聚类算法,基于使聚类准则 最小化。此处所用的聚类准则函数是聚类集中每一个样本点到该类聚类中心的距离平方和, 对于第 j 个聚类集,准则函数定义为 N j 2, X i J j X i Z j Sj i 1 式中, Sj 表示第 j 个聚类集,也称聚类域,其聚类中心为 Z j ; N j 为第 j 个聚类集 Sj 中所包 含的样本个数。 ( 1)任选 K 个初始聚类中心 Z 1(1) ,Z 2(1), , ZK (1) , K N 。括号内的序号代表寻 找聚类中心的迭代运算的次序号。一般可选择样本集中前 K 个样本作为初始聚类中心。 ( 2)按最小距离原则将其余样本分配到 K 个聚类中心中的某一个,即: 若 min{ X Zi (k ) , i 1,2, K} X Z j ( k) D (k ) ,则 X i Sj 。式中, k 代表 迭代运算次序号; K 代表聚类中心的个数。 ( 3)计算各个聚类中心的新向量值 Z j (k 1) , j 1,2, , K Z j (k 1) 1 X N J X Sj ( k ) 即以均值向量作为新的聚类中心。这一步要分别计算 K 个聚类中心的样本均值向量,故该 算法被称为 K- 均值算法。 ( 4)如果 Z j ( k 1) Z j ( k) , j 1,2, , K ,则回到( 2),将模式样本逐个重新分类, 并重复迭代计算;如果 Z j ( k 1) Z j ( k) , j 1,2, , K ,算法收敛,计算完毕。 1.3 程序流程图 开始 输入样本矩 阵 绘制样本数据的散 点图 得到样本矩阵的大小 输入聚类数目 k 聚类数目大于样本个 数 N Y 输入错误,要求 重新输入 k 随机选取 k 个样本作为初始 聚类中心 迭代次数 =1 计算各点到聚类中心的 距离 按最短距离原则分 配各点 输出迭代次数,聚类 中心,聚类结果 迭代次数 +1 计算各聚类中心的 新向量值 判断前后两次聚类中心是否变化 Y N 结束 1.4 MATLAB 程序代码 clear all; clc; data=input( 请输入样本数据矩阵: X=data(:,1); Y=data(:,2); figure(1); plot(X,Y ,r*,LineWidth,3); axis([0 9 0 8]) xlabel(x);ylabel(y); hold on; grid on; m=size(data,1); n=size(data,2); counter=0;  ); k=input( 请输入聚类数目: ); if km disp(输入的聚类数目过大,请输入正确的 k=input( 请输入聚类数目: );  k 值 ); end M=cell(1,m); for i=1:k M{1,i}=zeros(1,n); end Mold=cell(1,m); for i=1:k Mold{1,i}=zeros(1,n); end %随机选取 k 个样本作为初始聚类中心 %第一次聚类 ,使用初始聚类中心 p=randperm(m);% 产生 m 个不同的随机数 for i=1:k M{1,i}=data(p(i),:); end while true counter=counter+1; disp(第 ); disp(counter); disp(次迭代 ); count=zeros(1,k); %初始化聚类 C C=cell(1,k); for i=1:k C{1,i}=zeros(m,n); end %聚类 for i=1:m gap=zeros(1,k); for d=1:k for j=1:n gap(d)=gap(d)+(M{1,d}(j)-data(i,j))^2; end end [y,l]=min(sqrt(gap)); count(l)=count(l)+1; C{1,l}(count(l),:)=data(i,:); end Mold=M; disp( 聚类中心为: ); for i=1:k disp(M{1,i}); end disp( 聚类结果为: ); for i=1:k disp(C{1,i}); end sumvar=0; for i=1:k E=0; disp( 单个误差平方和为: ); for j=1:count(i) for h=1:n E=E+(M{1,i}(h)-C{1,i}(j,h))^2; end end disp(E); su

文档评论(0)

182****2200 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档