模式作业设计

模式作业设计

ID:37695338

大小:901.50 KB

页数:17页

时间:2019-05-29

模式作业设计_第1页
模式作业设计_第2页
模式作业设计_第3页
模式作业设计_第4页
模式作业设计_第5页
资源描述:

《模式作业设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.1题目给出K-均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本(图2.13),并给它们进行聚类分析。1.2算法原理K-均值算法也称C-均值算法,是根据函数准则进行分类的聚类算法,基于使聚类准则最小化。此处所用的聚类准则函数是聚类集中每一个样本点到该类聚类中心的距离平方和,对于第j个聚类集,准则函数定义为式中,Sj表示第j个聚类集,也称聚类域,其聚类中心为;为第j个聚类集中所包含的样本个数。(1)任选K个初始聚类中心Z1(1),Z2(1),…,ZK(1),。括号内的序号代表寻找聚类中心的迭代运算的次序号。一般可选择样本集中前K个样本作为初始聚类中心。(2)按最小距离原则

2、将其余样本分配到K个聚类中心中的某一个,即:若,则。式中,k代表迭代运算次序号;K代表聚类中心的个数。(3)计算各个聚类中心的新向量值,即以均值向量作为新的聚类中心。这一步要分别计算K个聚类中心的样本均值向量,故该算法被称为K-均值算法。(4)如果,,则回到(2),将模式样本逐个重新分类,并重复迭代计算;如果,,算法收敛,计算完毕。1.3程序流程图1.4MATLAB程序代码clearall;clc;data=input('请输入样本数据矩阵:');X=data(:,1);Y=data(:,2);figure(1);plot(X,Y,'r*','LineWidth',3);axis([09

3、08])xlabel('x');ylabel('y');holdon;gridon;m=size(data,1);n=size(data,2);counter=0;k=input('请输入聚类数目:');ifk>mdisp('输入的聚类数目过大,请输入正确的k值');k=input('请输入聚类数目:');endM=cell(1,m);fori=1:kM{1,i}=zeros(1,n);endMold=cell(1,m);fori=1:kMold{1,i}=zeros(1,n);end%随机选取k个样本作为初始聚类中心%第一次聚类,使用初始聚类中心p=randperm(m);%产生m个不

4、同的随机数fori=1:kM{1,i}=data(p(i),:);endwhiletruecounter=counter+1;disp('第');disp(counter);disp('次迭代');count=zeros(1,k);%初始化聚类CC=cell(1,k);fori=1:kC{1,i}=zeros(m,n);end%聚类fori=1:mgap=zeros(1,k);ford=1:kforj=1:ngap(d)=gap(d)+(M{1,d}(j)-data(i,j))^2;endend[y,l]=min(sqrt(gap));count(l)=count(l)+1;C{1,l}

5、(count(l),:)=data(i,:);endMold=M;disp('聚类中心为:');fori=1:kdisp(M{1,i});enddisp('聚类结果为:');fori=1:kdisp(C{1,i});endsumvar=0;fori=1:kE=0;disp('单个误差平方和为:');forj=1:count(i)forh=1:nE=E+(M{1,i}(h)-C{1,i}(j,h))^2;endenddisp(E);sumvar=sumvar+E;enddisp('总体误差平方和为:');disp(sumvar);%计算新的聚类中心,更新M,并保存旧的聚类中心fori=1:

6、kM{1,i}=sum(C{1,i})/count(i);end%检查前后两次聚类中心是否变化,若变化则继续迭代;否则算法停止;tally=0;fori=1:kifabs(Mold{1,i}-M{1,i})<1e-5*ones(1,n)tally=tally+1;continue;elsebreak;endendiftally==kbreak;endend1.5结果与分析请输入聚类数目:3第1次迭代聚类中心为:227436聚类结果为:001122000000000000006373740000000000000037364657000000000000单个误差平方和为:10单个误差平方和

7、为:3单个误差平方和为:7总体误差平方和为:20第2次迭代聚类中心为:116.66673.33333.75006.5000聚类结果为:001122000000000000006373740000000000000037364657000000000000单个误差平方和为:4单个误差平方和为:1.3333单个误差平方和为:3.7500总体误差平方和为:9.0833程序以循环语句来实现算法中迭代的要求。在对课本上图2.13所示的10个样

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。