模式识别作业
更新时间:2023-10-22 06:14:01 阅读量: 综合文库 文档下载
2.6给出K-均值算法的程序框图,编写程序,自选一组分别属于三类的三维模式样本,
并对它们进行聚类分析。
迭代次数=1随机选取k个样本作为初始聚类中心聚类数目大于样本个数YN输入聚类数目k得到样本矩阵的大小开始输入样本矩阵绘制样本数据的散点图输入错误,要求重新输入k
判断前后两次聚类中心是否变化NY计算各聚类中心的新向量值迭代次数+1输出迭代次数,聚类中心,聚类结果按最短距离原则分配各点计算各点到聚类中心的距离结束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 k>m
disp('输入的聚类数目过大,请输入正确的k值'); k=input('请输入聚类数目:'); 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);
sumvar=sumvar+E; end
disp('总体误差平方和为:'); disp(sumvar);
%计算新的聚类中心,更新M,并保存旧的聚类中心 for i=1:k
M{1,i}=sum(C{1,i})/count(i); end
%检查前后两次聚类中心是否变化,若变化则继续迭代;否则算法停止; tally=0; for i=1:k
if abs(Mold{1,i}-M{1,i})<1e-5*ones(1,n) tally=tally+1; continue; else break; end end if tally==k break; end End
3.11给出感知器算法程序框图,编写算法程序.
绘制判别函数输出权向量迭代次数+1校正权向量判别函数>0NY计算判别函数迭代次数=0校正增量系数=1开始输入两类样本数据及初始权向量值写成增广向量形式并进行规范化处理
MATLAB程序代码
clear all; clc;
结束disp('感知器算法求解两类训练样本的判别函数'); Data1=input('请输入第一类样本数据:'); Data2=input('请输入第二类样本数据:');
W=input('请输入权向量初始值W(1)='); Expand=cat(1,Data1,Data2); ExpandData1=cat(2,Data1,ones(4,1)); ExpandData2=cat(2,Data2.*-1,ones(4,1).*-1); ExpandData=cat(1,ExpandData1,ExpandData2); X=Expand(:,1); Y=Expand(:,2); Z=Expand(:,3);
[ro,co]=size(ExpandData); Step=0; CountError=1; while CountError>0; CountError=0; for i=1:ro
Temp=W*ExpandData(i,:)'; if Temp<=0
W=W+ExpandData(i,:); disp(W)
CounterError=CountError+1; end end Step=Step+1; end disp(W) figure(1)
plot3(X,Y,Z,'ks','LineWidth',2); grid on;hold on;
xlabel('x');ylabel('y');zlabel('z');
f=@(x,y,z)W(1)*x+W(2)*y+W(3)*z+W(4); [x,y,z]=meshgrid(-1:.2:1,-1:.2:1,0:.2:1); v=f(x,y,z);
h=patch(isosurface(x,y,z,v )); isonormals(x,y,z,v,h)
set(h,'FaceColor','r','EdgeColor','none');
正在阅读:
模式识别作业10-22
2012深市年报时间07-25
2018年春语文版语文八年级下册29.诗词五首 归田园居05-31
1、风电场应急预案汇编01-04
上海 (2)05-13
简单反应时和选择反应时实验报告03-12
机械设计复习 - 图文10-21
管理信息系统课程设计指导书02-02
中医药治疗维持性血液透析营养不良的研究03-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 识别
- 作业
- 模式
- Adobe认证试题--After - Effect模拟试题
- BGP30-6-400-10矿用隔爆型高压真空配电装置技术数据
- (2013)东中法民二终字第593号上诉人陈述词
- 安全标准化开展工作动员大会会议纪要
- matlab在信号与系统中的应用实验
- 万华MDI环评
- 撞单判定
- 2012年暑假总动员高中语文 林黛玉进贾府 苏教版必修2
- 最新北师版五年级语文下册第三单元测试题及答案2套
- 药用植物学多套合集 - 图文
- 行车工(天车工)作业指导书
- 微机原理键盘扫描及显示设计实验
- 河南省直属单位中央驻郑单位人民防空工程竣工验收备案管理规定的通知
- 《狼王梦》阅读检测题及答案
- 微观经济学(第六章) 课程讲稿
- 司法行政演讲稿以实践歌颂道德 以青春谱写事业
- 文言文句式
- 阅读点亮人生 书香溢满校园(新)
- 心理与教育研究方法
- 电子商务法律与法规形成性考核答案