最新模式识别期末考试.docx
《最新模式识别期末考试.docx》由会员分享,可在线阅读,更多相关《最新模式识别期末考试.docx(28页珍藏版)》请在冰豆网上搜索。
最新模式识别期末考试
一:
问答
1.什么是模式?
通过对具体个别事物进行观测所得到的具有时间和空间分布的信息称为模式。
模式所指的不是事物本身,而是我们从事物中获得的信息。
2.模式识别系统主要由哪些部分组成?
信息获取,预处理,特征提取与选择,分类决策,后处理。
3.最小错误率贝叶斯分类器设计过程?
答:
根据训练数据求出先验概率
类条件概率分布
利用贝叶斯公式得到后验概率
如果输入待测样本X,计算X的后验概率根据后验概率大小进行分类决策分析。
4.怎样利用朴素贝叶斯方法获得各个属性的类条件概率分布?
答:
假设各属性独立,P(x|ωi)=P(x1,x2,…,xn|ωi)=P(x1|ωi)P(x2|ωi)…P(xn|ωi)
后验概率:
P(ωi|x)=P(ωi)P(x1|ωi)P(x2|ωi)…P(xn|ωi)
类别清晰的直接分类算,如果是数据连续的,假设属性服从正态分布,算出每个类的均值方差,最后得到类条件概率分布。
均值:
方差:
二:
解答
1.设有如下三类模式样本集ω1,ω2和ω3,其先验概率相等,求Sw和Sb
ω1:
{(10)T,(20)T,(11)T}
ω2:
{(-10)T,(01)T,(-11)T}
ω3:
{(-1-1)T,(0-1)T,(0-2)T}
答:
由于三类样本集的先验概率相等,则概率均为1/3。
多类情况的类内散度矩阵,可写成各类的类内散布矩阵的先验概率的加权和,即:
其中Ci是第i类的协方差矩阵。
其中
,
,
则
类间散布矩阵常写成:
其中,
为多类模式(如共有c类)分布的总体均值向量,即:
则
=
2.设有如下两类样本集,其出现的概率相等:
ω1:
{(000)T,(100)T,(101)T,(110)T}
ω2:
{(001)T,(010)T,(011)T,(111)T}
用K-L变换,分别把特征空间维数降到二维和一维。
答:
把
和
两类模式作为一个整体来考虑,故
符合K-L变换进行特征压缩的最佳条件。
因P(ω1)=P(ω2)=0.5,故
协方差矩阵
从题中可以看出,协方差矩阵
已经是个对角阵,故
的本征值
其对应的特征向量为:
(1)、将其降到二维的情况:
选λ1和λ2对应的变换向量作为变换矩阵,在这里我们取
和
,得到
。
由
得变换后的二维模式特征为
:
:
(2)、将其降到一维的情况:
选λ1对应的变换向量作为变换矩阵,由
得变换后的一维模式特征为
:
:
三:
编程:
1.已知样本集呈现正态分布,采用基于最小错误率的贝叶斯决策方法,编程待定样本x=(2,0)T的类别,并画出分界线。
训练样本号k
123
123
特征x1
112
-1-1-2
特征x2
10-1
10-1
类别
ω1
ω2
解:
clear
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')
决策界面方程为:
48x1-9x1conj(x2)-9x2conj(x1)
(2,0)代入决策面方程的值为:
value=
96
有运行结果看出x=(20)T属于第一类
2.已知四个训练样本
w1={(0,0),(0,1)}w2={(1,0),(1,1)}
使用感知器固定增量法求判别函数
设w0=(1,1,1,1)ρ=1
要求编写程序,写出判别函数,并打出图表。
解:
clearall
w=[001;011;-10-1;-1-1-1];
W=[111];
flag=1;
flagS=zeros(1,size(w,1));
rowk=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
disp('W=')
disp(W)
disp('k=')
disp(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])
结果:
W=
-301
k=
17
判别函数为:
3.编程实现下列样本的fisher法分类:
解:
x1=[0111];y1=[0001];z1=[0010];
x2=[0001];y2=[0111];z2=[1101];
m1x=mean(x1(:
));
m1y=mean(y1(:
));
m1z=mean(z1(:
));
m1=[m1x
m1y
m1z];
m2x=mean(x2(:
));
m2y=mean(y2(:
));
m2z=mean(z2(:
));
m2=[m2x
m2y
m2z];
S1=zeros(3,3);
fori=1:
4
S1=S1+([x1(i),y1(i),z1(i)]'-m1)*([x1(i),y1(i),z1(i)]'-m1)';
end
S2=zeros(3,3);
fori=1:
4
S2=S2+([x2(i),y2(i),z2(i)]'-m2)*([x2(i),y2(i),z2(i)]'-m2)';
end
Sw=S1+S2;
W=(inv(Sw))*(m1-m2);
x=0:
.1:
2.5;
y=0:
.1:
3;
[X,Y]=meshgrid(x,y);
Z=(W
(1)*X+W
(2)*Y)/(-W(3));
mesh(X,Y,Z)
holdon;
hiddenoff;
Y1=0;
fori=1:
4
Y1=Y1+W'*[x1(i),y1(i),z1(i)]';
end
M1=Y1/4;
Y2=0;
fori=1:
4
Y2=Y2+W'*[x2(i),y2(i),z2(i)]';
end
M2=Y2/4;
Y0=(M1+M2)/2;
X1=[000]';
ifW'*X1>Y0
disp('点X1(0,0,0)属于第一类')
plot3(0,0,0,'or')
else
disp('点X1(0,0,0)属于第二类')
plot3(0,0,0,'ob')
end
X2=[100]';
ifW'*X2>Y0
disp('点X2(1,0,0)属于第一类')
plot3(1,0,0,'or')
else
disp('点X2(1,0,0)属于第二类')
plot3(1,0,0,'ob')
end
X3=[101]';
ifW'*X3>Y0
disp('点X3(1,0,1)属于第一类')
plot3(1,0,1,'or')
else
disp('点X3(1,0,1)属于第二类')
plot3(1,0,1,'ob')
end
X4=[110]';
ifW'*X4>Y0
disp('点X4(1,1,0)属于第一类')
plot3(1,1,0,'or')
else
disp('点X4(1,1,0)属于第二类')
plot3(1,1,0,'ob')
end
X5=[001]';
ifW'*X5>Y0
disp('点X5(0,0,1)属于第一类')
plot3(0,0,1,'or')
else
disp('点X5(0,0,1)属于第二类')
plot3(0,0,1,'ob')
end
X6=[011]';
ifW'*X6>Y0
disp('点X6(0,1,1)属于第一类')
plot3(0,1,1,'or')
else
disp('点X6(0,1,1)属于第二类')
plot3(0,1,1,'ob')
end
X7=[010]';
ifW'*X7>Y0
disp('点X7(0,1,0)属于第一类')
plot3(0,1,0,'or')
else
disp('点X7(0,1,0)属于第二类')
plot3(0,1,0,'ob')
end
X8=[111]';
ifW'*X8>Y0
disp('点X8(1,1,1)属于第一类')
plot3(1,1,1,'or')
else
disp('点X8(1,1,1)属于第二类')
plot3(1,1,1,'ob')
end
4.已知欧氏三维空间中两类9个训练样本
1:
用最近邻法编程求样本(00)T的分类,并画出分界线。
2:
用k近邻法编程求样本(00)T的分类,取K=5,7,9
解:
(1)clear
w1=[-10;-20;-21;-2-1];
y1=ones(4,1);
w2=[11;20;1-1;21;22];
y2=-1*ones(5,1);
w=[w1;w2];
y=[y1;y2];
test=[00];
fori=1:
9
dis(i)=(test(1,1)-w(i,1))^2+(test(1,2)-w(i,2))^2;
end
fori=1:
9
near
(1)=dis
(1);
j=1;
ifdis(i)(1)
near
(1)=dis(i);
j=j+1;
end
break
end
ifj<=4
y_test=1;
else
y_test=-1;
end
fori=1:
9
ify(i)>0
plot(w(i,1),w(i,2),'r+');
holdon
else
plot(w(i,1),w(i,2),'b.');
holdon
end
end
ify_test>0
plot(test(1,1),test(1,2),'g+');
title('最近邻分类器');
holdon
else
plot(test(1,1),test(1,2),'y.');
holdon
end
结果:
(2)clear
k=5;
kk=zeros(k,1);
w1=[-10;-20;-21;-2-1];
y1=ones(4,1);
w2=[11;20;1-1;21;22];
y2=-1*ones(5,1);
w=[w1;w2];
y=[y1;y2];
test=[00];
fori=1:
9
dis(i)=(test(1,1)-w(i,1))^2+(test(1,2)-w(i,2))^2;
end
forj=1:
k
near(j)=dis
(1);
end
fori=2:
9
forj=1:
k
ifdis(i)near(j)=dis(i);
kk(j)=y(i);
fort=j:
k
near(t+1)=near(t);
end
break
end
end
end
sum=0;
forh=1:
k
sum=kk(h)+sum;
end
y_test=sign(sum);
fori=1:
9
ify(i)>0
plot(w(i,1),w(i,2),'r+');
holdon
else
plot(w(i,1),w(i,2),'b.');
holdon
end
end
ify_test>0
plot(test(1,1),test(1,2),'g+');
title('K近邻分类器');
holdon
else
plot(test(1,1),test(1,2),'y.');
holdon
end
结果
K=5
K=7
K=9
5.某城市细胞识别中两类先验概率分别为:
正常状态:
=0.9;异常状态:
=0.1。
一系列观察值为
的待观察细胞:
-3.9847-3.5549-1.2401-0.9780-0.7932-2.8531
-2.7605-3.7287-3.5414-2.2692-3.4549-3.0752
-3.99342.8792-0.97800.79321.18823.0682
-1.5799-1.4885-0.7431-0.4221-1.11864.2532
类条件概率分布正态分布分别为(-2,0.25)(2,4)。
决策表为
,
=6,
=1,
=0。
用最小风险贝叶斯分类器分为1和2两类。
解:
clearall
pw
(1)=0.9;
pw
(2)=0.1;
a=[0,6;1,0];
x=[-3.9847,-3.5549,-1.2401,-0.9780,-0.7932,-2.8531,-2.7605,-3.7287,-3.5414,-2.2692,-3.4549,-3.0752,-3.9934,2.8792,-0.9780,0.7932,1.1882,3.0682,-1.5799,-1.4885,-0.7431,-0.4221,-1.1186,4.2532];
y=zeros(2,length(x));
y(1,:
)=normpdf(x,-2,0.5);
y(2,:
)=normpdf(x,2,2);
forn=1:
length(x)
fori=1:
2
pwx(n,i)=pw(i)*y(i,n)/(pw
(1)*y(1,n)+pw
(2)*y(2,n));
end
fori=1:
2
R(n,i)=p_fengxian(a,pwx(n,:
),i);
end
disp('判断为正常类的条件风险为:
');
R(n,1)
disp('判断为异常类的条件风险为:
');
R(n,2)
ifR(n,1)>R(n,2)
disp('根据观察值x判断为异常类!
:
');
else
disp('根据观察值x判断为正常类!
:
');
end
end
xplot=-6:
0.1:
6;
yplot=zeros(2,length(xplot));
yplot(1,:
)=normpdf(xplot,-2,0.5);
yplot(2,:
)=normpdf(xplot,2,2);
forn=1:
length(xplot)
fori=1:
2
pwx2(n,i)=pw(i)*yplot(i,n)/(pw
(1)*yplot(1,n)+pw
(2)*yplot(2,n));
end
end
subplot(2,2,1);
plot(xplot,pwx2(:
1),'b');holdon
plot(xplot,pwx2(:
2),'r');holdon
forn=1:
length(x)
plot(x(n),pwx(n,1),'b*');holdon
plot(x(n),pwx(n,2),'r*');holdon
end
gridon
axis([-6,6,0,1]);
xlabel('x'),ylabel('后验概率p(w|x)'),title('最小错误率的后验概率密度曲线')
legend('正常状态后验概率密度','异常状态后验概率密度')
subplot(2,2,2);
forn=1:
length(x)
plot(x
(1),pwx(1,1),'b*');holdon
plot(x(14),pwx(14,2),'r*');holdon
ifpwx(n,1)>pwx(n,2)
plot(x(n),pwx(n,1),'b*');holdon
else
plot(x(n),pwx(n,2),'r*');holdon
end
end
gridon
axis([-6,6,0,1]);
xlabel('x'),ylabel('选取较大的后验概率值p'),title('最小错误率的分类结果')
legend('分为正常类','分为异常类')
forn=1:
length(xplot)
fori=1:
2
Rplot(n,i)=p_fengxian(a,pwx2(n,:
),i);
end
end
subplot(2,2,3);
plot(xplot,Rplot(:
1),'b');holdon
plot(xplot,Rplot(:
2),'r');holdon
forn=1:
length(x)
plot(x(n),R(n,1),'b*');holdon
plot(x(n),R(n,2),'r*');holdon
end
gridon
axis([-6,6,0,1]);
xlabel('x'),ylabel('条件风险概率p(w|x)'),title('最小风险的概率密度曲线')
legend('正常状态条件风险','异常状态条件风险')
subplot(2,2,4);
forn=1:
length(x)
ifR(n,1)>R(n,2)
plot(x(n),R(n,2),'r*');holdon
else
plot(x(n),R(n,1),'b*');holdon
end
end
gridon
axis([-6,6,0,1]);
xlabel('x'),ylabel('选取较小的条件风险值p'),title('最小风险的分类结果')
legend('分为异常类','分为正常类')
子程序:
functionp1=p_fengxian(a,pwx,i)
p1=pwx
(1)*a(i,1)+pwx
(2)*a(i,2);
6.随机生成20个样本,每个样本有3个特征,使用C均值法将样本分为2类。
解:
clear;
w=round(10*rand(20,3));
c=2;
N=20;
w1=w(1:
10,:
);
w2=w(11:
20,:
);
n1=10;n2=10;
[m1,m2,Je]=calculate0(n1,n2,w1,w2);
n=0;
while(n<=N)
fori=1:
n1
p1=(n1/(n1-1))*(norm(w1(i,:
)-m1,2))^2;
p2=(n2/(n2+1))*(norm(w1(i,:
)-m2,2))^2;
if(p2n1=n1-1;
n2=n2+1;
w1(i:
n1,:
)=w1(i+1:
n1+1,:
);
w2(n2,:
)=w1(i,:
);
[m1,m2,Je]=calculate0(n1,n2,w1,w2);
i=i-1;
n=n-1;
end
n=n+1;
end
fori=1:
n2
p1=(n1/(n1+1))*(norm(w2(i,:
)-m1,2))^2;
p2=(n2/(n2-1))*(norm(w2(i,:
)-m2,2))^2;
if(p1n1=n1+1;
n2=n2-1;
w2(i:
n2,:
)=w2(i+1:
n2+1,:
);
w1(n1,:
)=w2(i,:
);
[m1,m2,Je]=calculate0(n1,n2,w1,w2);
i=i-1;
n=n-1;
end
n=n+1;
end
end
w10=zeros(n1,3);
w20=zeros(n2,3);
w10=w1(1:
n1,:
)
w20=w2(1:
n2,:
)
子函数:
function[m1,m2,Je]=calculate0(n1,n2,w1,w2)
m1=zeros(1,3);
m2=m1;
forii=1:
n1
m1=m1+w1(ii,:
)/n1;
end
forii=1:
n2
m2=m2+w2(ii,:
)/n2;
end
J1=0;J2=0;
forii=1:
n1
J1=J1+(norm(w1(ii,:
)-m1,2))^2;
end
forii=1:
n2.0
(2)缺乏经营经验J2=J2+(norm(w2(ii,:
)-m2,2))^2;
据统计,上海国民经济持续快速增长。
03全年就实现国内生产总值(GDP)6250.81亿元,按可比价格计算,比上年增长11.8%。
第三产业的增速受非典影响而有所减缓,全年实现增加值3027.11亿元,增长8%,增幅比上年下降2个百分点。
end
他们的成功秘诀在于“连锁”二字。
凭借“连锁”,他们在女孩们所喜欢的小玩意上玩出了大名堂。
小店连锁,优势明显,主要有:
Je=J1+J2;
end
结果:
(2)东西全w10=
秘诀:
好市口+个性经营563
852
3510
送人□有实用价值□装饰□534
(1)专业知识限制583
852
388
3