模式识别上机作业1.docx

上传人:b****2 文档编号:14454559 上传时间:2023-04-23 格式:DOCX 页数:18 大小:220.26KB
下载 相关 举报
模式识别上机作业1.docx_第1页
第1页 / 共18页
模式识别上机作业1.docx_第2页
第2页 / 共18页
模式识别上机作业1.docx_第3页
第3页 / 共18页
模式识别上机作业1.docx_第4页
第4页 / 共18页
模式识别上机作业1.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

模式识别上机作业1.docx

《模式识别上机作业1.docx》由会员分享,可在线阅读,更多相关《模式识别上机作业1.docx(18页珍藏版)》请在冰豆网上搜索。

模式识别上机作业1.docx

模式识别上机作业1

 

模式识别上机作业

 

队别:

研究生二队

姓名:

***

学号:

******

 

作业一:

用感知器固定增量法求判别函数,设

写程序上机运行,写出判别函数,打出图表。

解答:

1、程序代码如下:

clc,clear

w=[001;

011;

-10-1;

-1-1-1];

W=[111];

rowk=1;

flag=1;

flagS=zeros(1,size(w,1));

k=0;

whileflag

fori=1:

size(w,1)

ifisempty(find(flagS==0))

flag=0;

break;

end

k=k+1;

pb=w(i,:

)*W';

ifpb<=0

flagS(i)=0;

W=W+rowk*w(i,:

);

else

flagS(i)=1;

end

end

end

W,k

wp1=[00;

01;];

wp2=[10;

11];

plot(wp1(:

1),wp1(:

2),'o')

holdon

plot(wp2(:

1),wp2(:

2),'*')

holdon

y=-0.2:

1/100:

1.2;

plot(1/3*ones(1,size(y)),y,'r-')

axis([-0.251.25-0.251.25])

2、判别函数。

计算得到增广权矢量为

,故判别函数表达式为:

3、分类示意图:

图1感知器算法分类结果图

 

作业二:

在下列条件下,求待定样本

的类别,画出分界线,编程上机。

1、二类协方差相等;2、二类协方差不等。

训练样本号

123

123

特征

112

-1-1-2

特征

10-1

10-1

类别

解答:

经计算,两类的协方差矩阵不相等。

,计算时相关项直接略去。

1、计算时,参考书中P96页式(4-1-31)等。

程序代码如下:

clc,clear,closeall

D1=[1,1,2;1,0,-1;];

D2=[-1,-1,-2;1,0,-1;];

u1=mean(D1,2);

u2=mean(D2,2);

c1=zeros(size(D1,1),size(D1,1));

fori=1:

size(D1,2)

c1=c1+D1(:

i)*D1(:

i)';

end

c1=c1/size(D1,2)-u1*u1';

c2=zeros(size(D2,1),size(D2,1));

fori=1:

size(D2,2)

c2=c2+D2(:

i)*D2(:

i)';

end

c2=c2/size(D2,2)-u2*u2';

I=eye(size(c1,1),size(c1,1));

ic1=c1\I;

ic2=c2\I;

W1=-0.5*ic1;

W2=-0.5*ic2;

w1=ic1*u1;;

w2=ic2*u2;;

w10=-0.5*log(det(c1))-0.5*u1'*ic1*u1;

w20=-0.5*log(det(c2))-0.5*u2'*ic2*u2;

symsx1x2;

x=[x1;x2];

fprintf('决策界面方程为:

')

D=x'*(W1-W2)*x+(w1-w2)'*x+(w10-w20);

pretty(D)

fprintf('(2,0)代入决策面方程的值为:

')

value=subs(D,{x1,x2},[20])

figure

ezplot(D)

holdon

plot(D1(1,:

),D1(2,:

),'bo')

plot(D2(1,:

),D2(2,:

),'ks')

plot(2,0,'rp')

运行结果显示,决策面方程为:

2、计算结果。

从程序运行结果可以看出,

带入决策界面方程值为96,可见属于第一类

见下图:

图2两类协方差不等分类结果图

图中,黑色方块为第二类

,蓝色圆圈为第一类

,红色五角星即为要判断类别的

绿色交叉的两条直线即为决策面曲线。

左上和右下为第一类,右上和左下为第二类。

作业三:

有训练集资料矩阵如下表所示,现已知,

,试问,

应属于哪一类?

训练样本号

123

123

123

特征

021

-1-2-2

001

特征

010

10-1

-2-1-2

类别

要求:

用两种解法:

a、三类协方差不等;b、三类协方差相等。

编程上机,画出三类的分界线。

解答:

经计算,三类的协方差矩阵不相等。

,计算时相关项直接略去。

1、计算时,参考书中P96页式(4-1-31)等。

程序代码如下:

clc,clear,closeall

D1=[021;010;];

D2=[-1-2-2;10-1;];

D3=[001;-2-1-2];

X=[-22];

u1=mean(D1,2);

u2=mean(D2,2);

u3=mean(D3,2);

c1=zeros(size(D1,1),size(D1,1));

fori=1:

size(D1,2)

c1=c1+D1(:

i)*D1(:

i)';

end

c1=c1/size(D1,2)-u1*u1';

c2=zeros(size(D2,1),size(D2,1));

fori=1:

size(D2,2)

c2=c2+D2(:

i)*D2(:

i)';

end

c2=c2/size(D2,2)-u2*u2';

c3=zeros(size(D3,1),size(D3,1));

fori=1:

size(D3,2)

c3=c3+D3(:

i)*D3(:

i)';

end

c3=c3/size(D3,2)-u3*u3';

I=eye(size(c1,1),size(c1,1));

ic1=c1\I;

ic2=c2\I;

ic3=c3\I;

W1=-0.5*ic1;

W2=-0.5*ic2;

W3=-0.5*ic3;

w1=ic1*u1;

w2=ic2*u2;

w3=ic3*u3;

w10=-0.5*log(det(c1))-0.5*u1'*ic1*u1;

w20=-0.5*log(det(c2))-0.5*u2'*ic2*u2;

w30=-0.5*log(det(c3))-0.5*u3'*ic3*u3;

symsx1x2real;

x=[x1;x2];

D12=x'*(W1-W2)*x+(w1-w2)'*x+(w10-w20);

D13=x'*(W1-W3)*x+(w1-w3)'*x+(w10-w30);

D23=x'*(W2-W3)*x+(w2-w3)'*x+(w20-w30);

fprintf('一、二类决策界面方程为:

')

pretty(D12)

fprintf('一、三类决策界面方程为:

')

pretty(D13)

fprintf('二、三类决策界面方程为:

')

pretty(D23)

DD1=x'*W1*x+w1'*x+w10;

DD2=x'*W2*x+w2'*x+w20;

DD3=x'*W3*x+w3'*x+w30;

value=[];

fprintf(['('num2str(X

(1))','num2str(X

(2))')代入1-2决策面方程的值为:

'])

v1=subs(DD1,{x1,x2},X)

fprintf(['('num2str(X

(1))','num2str(X

(2))')代入1-3决策面方程的值为:

'])

v2=subs(DD2,{x1,x2},X)

fprintf(['('num2str(X

(1))','num2str(X

(2))')代入2-3决策面方程的值为:

'])

v3=subs(DD3,{x1,x2},X)

V=[v1v2v3];

fprintf(['可见('num2str(X

(1))','num2str(X

(2))')属于第'num2str(find(V==max(V)))'类。

\n'])

figure

holdon

h=ezplot(D12);

set(h,'Color','r')

h=ezplot(D13);

set(h,'Color','b')

h=ezplot(D23);

set(h,'Color','y')

plot(D1(1,:

),D1(2,:

),'ko')

plot(D2(1,:

),D2(2,:

),'ks')

plot(D3(1,:

),D3(2,:

),'kp')

plot(X

(1),X

(2),'r*')

title('分界线及样本点分布')

1-2类决策面方程为:

1-3类决策面方程为:

2-3类决策面方程为:

2、计算结果。

从程序运行结果可以看出,

带入三个判决函数(略去

相关项)计算的值分别为-95.3521、-17.3521、-29.3521,可见属于第二类

分类界面参见下图:

图3三类协方差不等分类结果图

 

作业四:

样本

1

2

3

4

5

6

7

8

0

2

1

5

6

5

6

7

0

2

1

3

3

4

4

5

用对分法编程上机,分成两类画出图形。

解答:

1、程序代码如下:

clc,clear,closeall

ExampleData=[0,0,2,2,4,4,5,6,6,7,-4,-2,-3,-3,-5,1,0,0,-1,-1,-3;

6,5,5,3,4,3,1,2,1,0,3,2,2,0,2,1,-1,-2,-1,-3,-5;];

Data=[0,2,1,5,6,5,6,7;

0,2,1,3,3,4,4,5;];

N=size(Data,2);

Data=[1:

N;Data];

G1=Data;

G2=[];N1=size(G1,2);

N2=size(G2,2);

X1=mean(G1,2);X1=X1(2:

end);

X2=[0;0];

E=N1*N2/N*(X1-X2)'*(X1-X2);

RE=[];

ZY=[];

LE=E;

whileLE<=E

LE=E;

n1=size(G1,2);

e1=[];

fori=1:

n1

g1=G1;

g2=G2;

g2=[g2g1(:

i)];

g1(:

i)=[];

nn1=size(g1,2);

nn2=size(g2,2);

x1=mean(g1,2);x1=x1(2:

end);

x2=mean(g2,2);x2=x2(2:

end);

ee1=nn1*nn2/N*(x1-x2)'*(x1-x2);

e1=[e1;ee1];

end

E=max(e1);

RE=[RE;E];

I=find(e1==E);

nzy=G1(1,I);

ZY=[ZY;nzy];

ifLE<=E

G2=[G2G1(:

I)];

G1(:

I)=[];

end

end

RE=[(1:

length(RE))'ZYRE]

figure

plot(G1(2,:

),G1(3,:

),'o')

holdon

plot(G2(2,:

),G2(3,:

),'*')

2、对分法聚类结果。

两类的标样本号分别为:

第一类:

1、2、3

第二类:

4、5、6、7、8

3、对分法聚类结果示意图:

图4对分法聚类结果图

 

作业五:

已知十个样本,每个样本2个特征,数据如下:

样本

1

2

3

4

5

6

7

8

9

10

0

1

2

4

5

5

6

1

1

1

0

1

1

3

3

4

5

4

5

6

用K次平均算法和ISODATA算法分成3类,编程上机,并画出分类图。

 

解答:

1、K次平均算法程序代码如下:

clc,clear,closeall

Data=[0124556111;0113345456];

K=3;

N=size(Data,2);

Data=[1:

N;Data];

Z=Data(2:

end,1:

K);W={};

LZ=[];

while~isequal(Z,LZ)

LZ=Z;

fori=1:

K

W{i}=[];

end

fori=1:

N

D=[];

forj=1:

K

d=sqrt(sum((Data(2:

end,i)-Z(:

j)).^2));

D=[D;d];

end

I=find(D==min(D));

W{I

(1)}=[W{I

(1)}Data(1,i)];

end

Z=[];

fori=1:

K

w=W{i};

z=mean(Data(2:

end,w),2);

Z=[Zz];

end

end

Z

figure

bh=['o''*''s''.''d''h''p'];

fori=1:

K

w=W{i}

plot(Data(2,w),Data(3,w),bh(i));

holdon

end

2、K次平均算法聚类结果。

两类的标样本号分别为:

第一类:

1、2、3

第二类:

8、9、10

第三类:

4、5、6、7

3、K次平均算法聚类结果示意图:

图5K次平均算法聚类结果图

4、ISODATA算法实现程序为从网上下载的代码,文件较长,参见附上的源代码。

调用计算作业数据代码如下:

clc,clear,closeall

X=[0124556111];

Y=[0113345456];

ON=1;OC=4;OS=1;k=4;L=1;I=10;NO=1;min=50;

[centro,Xcluster,Ycluster,A,clustering]=isodata(X,Y,k,L,I,ON,OC,OS,NO,min);

clc;

fprintf('聚成类的数目:

%d\n',A);

figure;

holdon;

bh=['o''*''s''.''d''h''p'];

fori=1:

A,

n=find(clustering==i);

p=plot(X(n),Y(n),bh(i));

title(A);

end;

fprintf('聚成类的数目:

%d\n',A);

其中,预期的类数设为4才能得到分成3类的结果。

5、ISODATA算法聚类结果。

两类的标样本号分别为:

第一类:

1、2、3

第二类:

7、9、10

第三类:

4、5、6、8

6、ISODATA算法聚类结果示意图:

图6ISODATA算法聚类结果图

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1