第三章作业。
1.设有10个两维模式,
若选择阈值的系数为,使用最大最小算法进行聚类。
解:先定义几个函数:
文件名为函数。
求其他样本点与选定点的第m个的最大距离,并找到这个最大距离点。
function [distance,i]=caldistance(x,m)
m,n]=size(x);
distance=0;
index=0;
for i=1:n
index=index+1;
temp=sum((x(:,m)-x(:,i)).2);
distance(index)=sqrt(temp);
v(:,i)=distance(index);
endend
文件名为函数。
其他样本分别与第m、n个样本之间的欧氏距离距离,取较小的。
function [vv i]=jiaoxiaojuli(x,m,n)
[m,n]=size(x);
ddistance=0;
for i=1:n
temp=sum((x(:,m)-x(:,i)).2);
ddistance(1)=sqrt(temp);
temp1=sum((x(:,n)-x(:,i)).2);
ddistance(2)=sqrt(temp1);
ddistance=min(ddistance(1),ddistance(2));
vv(:,i)=ddistance;
endend
文件名为函数。
其他各样本点被分到离z1、z2近的类中。
function [w1 w]=fenlei(x,m,n)
m,n]=size(x);
for i=1:n
a1=sqrt(sum((x(:,m)-x(:,i)).2));
a2=sqrt(sum((x(:,n)-x(:,i)).2));
if a1>a2
w1(1,i)=i;
w(1,i)=0;
elsew1(1,i)=0;
w(1,i)=i;
endend
end文件名为函数。
第m、n和q个样本与其他样本之间的欧氏距离取较小的一个。
function [s]=z3jiaoxiao(x,m,n,q)
[m,n]=size(x);
ddistance=0;
for i=1:n
temp=sum((x(:,m)-x(:,i)).2);
ddistance(1)=sqrt(temp);
temp=sum((x(:,n)-x(:,i)).2);
ddistance(2)=sqrt(temp);
temp=sum((x(:,q)-x(:,i)).2);
ddistance(3)=sqrt(temp);
ddistance=min(min(ddistance(1),ddistance(2)),ddistance(3));
s(:,i)=ddistance;
endend
文件名为函数。
将x中的各样本点分类到离第m、n、p较近的类中。
function [w1 w2 w3]=z3fenlei(x,m,n,p)
m,n]=size(x);
for i=1:n
a1=sqrt(sum((x(:,m)-x(:,i)).2));
a2=sqrt(sum((x(:,n)-x(:,i)).2));
a3=sqrt(sum((x(:,p)-x(:,i)).2));
if a1<=a2&&a1<=a3
w1(1,i)=i;
w2(1,i)=0;
w3(1,i)=0;
elseif a2<=a1&&a2<=a3
w1(1,i)=0;
w2(1,i)=i;
w3(1,i)=0;
elseif a3 w1(1,i)=0;
w2(1,i)=0;
w3(1,i)=i;
end end
end总程序为:
x1=[0 0]';x2=[1 1]';x3=[2 2]';x4=[3 7]';x5=[3 6]';x6=[4 6]';x7=[5 7]';x8=[6 3]';x9=[7 3]';x10=[7 4]';
x=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10];
z1=x2;
distance,i]=caldistance(x,2);%得到i,和最大距离distance,i=10
h=i;t=1/2*sqrt(sum((z1-x(:,i)).2));
vv j]=jiaoxiaojuli(x,2,h);
第m和n个样本与其他样本之间的欧氏距离取较小的一个放在数组vv中1*10
a1 k]=max(vv);
if a1 [w1 w2]=fenlei(x,2,h) %分类。
elsedisp('add z3')
[s]=z3jiaoxiao(x,2,h,k);
[a2 k1]=max(s);
if a2h,k
[w1 w2 w3]=z3fenlei(x,2,h,k); 分类。
elsedisp('add z4')
endend
a=find(w1>0);b=find(w2>0);c=find(w3>0);
画第一类点。
m n]=size(a);
for t=1:n
s=a(t);
plot(x(1,s),x(2,s),'bo');hold on;
end画第二类点。
[m n]=size(b);
for t=1:n
s=b(t);
plot(x(1,s),x(2,s),'rx')
end画第三类点。
m n]=size(c);
for t=1:n
s=c(t);
plot(x(1,s),x(2,s),'kd')
endaxis([-1 7 -1 7]);title('最大最小算法聚类')
运行结果:add z3h =
k =a =
b =c =
由结果可知,聚类结果如图:
2.设有5个两维模式样本,
定义类间距离为最小距离,且不小于3,试用层次距离法对5个样本进行聚类。
解:定义文件名为函数:
function [vv r i]=jiaoxiaojuli(x,m,n)
第m和n个样本与其他样本之间的欧氏距离取较小的一个。
[m,n]=size(x);
ddistance=0;k=0;
for i=1:n
if i~=m&&i~=n
k=k+1;
temp=sum((x(:,m)-x(:,i)).2);
ddistance(1)=sqrt(temp);
temp1=sum((x(:,n)-x(:,i)).2);
ddistance(2)=sqrt(temp1);
ddistance=min(ddistance(1),ddistance(2));
vv(:,k)=ddistance;
第m和n个样本与其他样本之间的欧氏距离取较小的一个放在数组vv中1*10
r(:,k)=i;
elseend
endend
主程序:x1=[0 0]';x2=[0 1]';x3=[2 0]';x4=[3 3]';x5=[4 4]';
x=[x1 x2 x3 x4 x5];l=0;
d12=sqrt(sum((x(:,1)-x(:,2)).2));
d13=sqrt(sum((x(:,1)-x(:,3)).2));
d14=sqrt(sum((x(:,1)-x(:,4)).2));
d15=sqrt(sum((x(:,1)-x(:,5)).2));
d23=sqrt(sum((x(:,2)-x(:,3)).2));
d24=sqrt(sum((x(:,2)-x(:,4)).2));
d25=sqrt(sum((x(:,2)-x(:,5)).2));
d34=sqrt(sum((x(:,3)-x(:,4)).2));
d35=sqrt(sum((x(:,3)-x(:,5)).2));
d45=sqrt(sum((x(:,4)-x(:,5)).2));
d=[d12 d13 d14 d15 d23 d24 d25 d34 d35 d45];
a i]=min(d);
if i==1
w1=[x1 x2];
j=1;k=2;
elseif i==2
w1=[x1 x3];
j=1;k=3;
elseif i==3
w1=[x1 x4];
j=1;k=4;
elseif i==4
w1=[x1 x5];
j=1;k=5;
elseif i==5
w1=[x2 x3];
j=2;k=3;
elseif i==6
w1=[x2 x4];
j=2;k=4;
elseif i==7
w1=[x2 x5];
j=2;k=5;
elseif i==8
w1=[x3 x4];
j=3;k=4;
elseif i==9
w1=[x3 x5];
j=3;k=5;
elseif i==10
模式识别作业第三章
第三章作业。3.5 已知两类训练样本为。设,用感知器算法求解判别函数,并绘出判别界面。解 matlab程序如下 clear感知器算法求解判别函数。x1 0 0 0 x2 1 0 0 x3 1 0 1 x4 1 1 0 x5 0 0 1 x6 0 1 1 x7 0 1 0 x8 1 1 1 构成增广向...
模式识别作业三
第三次模式识别作业。章 第3 章。1.分别写出在以下两种情况 12 下的最小错误率 基本的 贝叶斯决策规则。答 判别函数为 g x p w1 p x w1 p w2 p x w2 1 当时,g x p w1 p w2 所以。2 当时,g x p x w1 p x w2 所以。2.两类的一维模式,每一...
模式识别作业
6.题目 fisher分类和基于核的fisher分类的设计与实现研究。具体内容 1.简述fisher分类和基于核的fisher分类的算法原理 2.举出实例 3.用matlab软件编写程序实现 4.分析实验结果。fisher分类和基于核的fisher分类的设计与实现研究。1 fisher分类和基于核的...