模式识别作业第三章

发布 2022-07-14 04:17:28 阅读 9615

第三章作业。

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]';

构成增广向量形式,并进行规范化处理。

x=[0 1 1 1 0 0 0 -1;0 0 0 1 0 -1 -1 -1;0 0 1 0 -1 -1 0 -1;1 1 1 1 -1 -1 -1 -1];

plot3(x1(1),x1(2),x1(3),'ro',x2(1),x2(2),x2(3),'ro',x3(1),x3(2),x3(3),'ro',x4(1),x4(2),x4(3),'ro');hold on;

plot3(x5(1),x5(2),x5(3),'rx',x6(1),x6(2),x6(3),'rx',x7(1),x7(2),x7(3),'rx',x8(1),x8(2),x8(3),'rx');grid on;

w=[-1,-2,-2,0]';c=1;n=2000;

for k=1:n

t=for i=1:8

d=w'*x(:,i);

if d>0

w=w;t=[t 1];

elsew=w+c*x(:,i);

t=[t -1];

endend

if i==8&t==ones(1,8)

w=wsyms x y

z=-w(1)/w(3)*x-w(2)/w(3)*y-1/w(3);

ezmesh(x,y,z,[0.5 1 2]);

axis([-0.5,1.5,-0.5,1.5,-0.5,1.5]);

title('感知器算法')

break;

elseend

end运行结果:w =

判别界面如下图所示:

若有样本;其增广;

则判别函数可写成:

若,则,否则。

3.6 已知三类问题的训练样本为。

试用多类感知器算法求解判别函数。

解:(方法一)

增广向量形式:

任取初始权向量。

第一次迭代:

但且不成立。

三个权向量都需要修改:

第二次迭代:

但且不成立。

三个权向量都需要修改:

第三次迭代:

但且不成立。

三个权向量都需要修改:

迭代到。六、七、八次有权向量的解:

判别函数:

方法二)编写matlab程序如下:

clear多类感知器算法求解判别函数。

x1=[-1 -1]';x2=[0 0]';x3=[1 1]';

增广向量形式。

x=[-1 0 1;-1 0 1;1 1 1];

w1=[0 0 0]';w2=w1;w3=w1;

n=100;c=1;

for k=1:n

t=[0 0 0];

for i=1:3

d1=w1'*x(:,i);

d2=w2'*x(:,i);

d3=w3'*x(:,i);

switch i

case 1

if d1>d2&d1>d3

t(i)=1;

elseif d1>d2&d1<=d3

w1=w1+x(:,i);

w2=w2;

w3=w3-x(:,i);

elseif d1>d3&d1<=d2

w1=w1+x(:,i);

w2=w2-x(:,i);

w3=w3;

elseif d1<=d2&d1<=d3

w1=w1+x(:,i);

w2=w2-x(:,i);

w3=w3-x(:,i);

endcase 2

if d2>d1&d2>d3

t(i)=1;

elseif d2>d1&d2<=d3

w1=w1;

w2=w2+x(:,i);

w3=w3-x(:,i);

elseif d2>d3&d2<=d1

w2=w2+x(:,i);

w1=w1-x(:,i);

w3=w3;

elseif d2<=d1&d2<=d3

w2=w2+x(:,i);

w1=w1-x(:,i);

w3=w3-x(:,i);

endcase 3

if d3>d2&d3>d1

t(i)=1;

elseif d3>d2&d3<=d1

w3=w3+x(:,i);

w2=w2;

w1=w1-x(:,i);

elseif d3>d1&d3<=d2

w1=w1;

w3=w3+x(:,i);

w2=w2-x(:,i);

elseif d3<=d2&d3<=d1

w3=w3+x(:,i);

w2=w2-x(:,i);

w1=w1-x(:,i);

endend

endif t==ones(1,3)

w1,w2,w3

break;

elseend

end运行结果:w1 =

w2 =

w3 =

故可得判别函数:

3.7 用lmse算法求解习题3.5中两类模式的判别函数,并绘出判别界面。

解:编写matlab程序如下:

clearlmse算法求解判别函数。

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]';

规范化增广样本矩阵。

x=[0 0 0 1;1 0 0 1;1 0 1 1;1 1 0 1;0 0 -1 -1;0 -1 -1 -1;0 -1 0 -1;-1 -1 -1 -1];

plot3(x1(1),x1(2),x1(3),'ro',x2(1),x2(2),x2(3),'ro',x3(1),x3(2),x3(3),'ro',x4(1),x4(2),x4(3),'ro');hold on;

plot3(x5(1),x5(2),x5(3),'rx',x6(1),x6(2),x6(3),'rx',x7(1),x7(2),x7(3),'rx',x8(1),x8(2),x8(3),'rx');grid on;

伪逆矩阵。x=inv(x'*x)*x'; x的伪逆矩阵。

b=ones(8,1);z=10*ones(8,1);t=[z];

for i=2:1000

w=x*b;

e=x*w-b;

t=[t e];j=i-1;

这里存在问题,有待解决。但不影响本题

a=e>0;

b=e<0;

if a==0

w',b',e',i

break;

elseif sum(b,1)==8

disp('线性不可分模式')

brek;

elseb=b+(e+abs(e));

endsyms x y

z=-w(1)/w(3)*x-w(2)/w(3)*y-w(4)/w(3);

ezmesh(x,y,z,[0.5 1 2]);

axis([-0.5,1.5,-0.5,1.5,-0.5,1.5]);

title(' lmse算法·¨'

运行结果:w =

b =e =1.0e-015 *

模式识别作业第三章

第三章作业。1.设有10个两维模式,若选择阈值的系数为,使用最大最小算法进行聚类。解 先定义几个函数 文件名为函数。求其他样本点与选定点的第m个的最大距离,并找到这个最大距离点。function distance,i caldistance x,m m,n size x distance 0 ind...

模式识别作业三

第三次模式识别作业。章 第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分类和基于核的...