模式识别期末考试.docx
《模式识别期末考试.docx》由会员分享,可在线阅读,更多相关《模式识别期末考试.docx(20页珍藏版)》请在冰豆网上搜索。
![模式识别期末考试.docx](https://file1.bdocx.com/fileroot1/2022-10/16/cba5a056-c6f5-4f26-9a2b-1fc36d365c21/cba5a056-c6f5-4f26-9a2b-1fc36d365c211.gif)
模式识别期末考试
问答
1.什么是模式?
通过对具体个别事物进行观测所得到的具有时间和空间分布的信息称为模式。
模式所指的不是事物本身,而是我们从事物中获得的信息。
2.模式识别系统主要由哪些部分组成?
信息获取,预处理,特征提取与选择,分类决策,后处理。
3.最小错误率贝叶斯分类器设计过程?
1,2
P(x|wi)P(wi)2
答:
根据训练数据求出先验概率P(wi),i
类条件概率分布p(x|wi),i1,2利用贝叶斯公式得到后验概率P(wi|x)
P(x|wj)P(wj)如果输入待测样本X,计算X的后验概率根据后验j概1率大小进行分类决策分析。
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)类别清晰的直接分类算,如果是数据连续的,假设属性服从正态分布,算出每个类的均值方差,最后得到类条件概率分布。
1m1m
均值:
mean(x)1xi方差:
var(x)1(xix)^2mi1m1i1
二:
解答
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。
多类情况的类内散度矩阵,可写成各类的类内散布矩阵的先验概率的加权和,即:
Sw
c
P(
i1
i)E{(x
mi)(x
c
mi)T|i}Ci
i1
4
2
-1
其中
Ci是第
i类的协方差矩阵。
其中
3,
-3,
-3
m1
m2
m3
11
23
4
3
3
-3
则
12/3
-1/3
12/3
1/3
12/3
-1/3
2/3
-1/9
Sw
Sw1S
w2Sw3
3-1/3
2/3
31/3
2/3
3-1/3
2/3
-1/9
2/3
c
类间散布矩阵常写成:
SbP(i)(mim0)(mim0)T
i1
其中,m0为多类模式(如共有c类)分布的总体均值向量,即:
m0
E{x}
c
P(
i1
i)mi,i,i1,2,,c
1
1
m0
13
9
3-1
-1
3
9
则
Sb
c
P(
i)(mi
m0)(mim0)T=
11.49380.5432
30.54320.1975
i1
2.设有如下两类样本集,其出现的概率相等:
ω1:
{(000)
T,(100)
T,(101)
T,(110)
T}
ω2:
{(001)
T,(010)
T,(011)
T,(111)
T}
用K-L变换,分别把特征空间维数降到二维和一维。
答:
把w1和w2两类模式作为一个整体来考虑,故
0
1
1
1
0
0
0
1
x0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0.5
mE{x}
0.5
0.5
符合K-L变换进行特征压缩的最佳条件。
因P(ω1)=P(ω2)=0.5,故
0.2500
协方差矩阵
CxE{(xm)(xm)}00.250
000.25
从题中可以看出,协方差矩阵Cx已经是个对角阵,故Cx的本征值1230.25
其对应的特征向量为:
1
0
0
10,2
1,3
0
0
0
1
1)、将其降到二维的情况:
1和2,得到
选λ1和λ2对应的变换向量作为变换矩阵,在这里我们取
由yx得变换后的二维模式特征为
:
0111
w1:
{,,,}0001
0001
w2:
{,,,}
{0,1,1,1}
(2)、将其降到一维的情况:
选λ1对应的变换向量作为变换矩阵,由yx得变换后的一维模式特征为w1:
{0,1,1,1}
w2:
{0,0,0,1}
三:
编程:
1.已知样本集呈现正态分布,采用基于最小错误率的贝叶斯决策方法,编程待定样本x=(2,0)T的类别,并画出分界线。
训练样本号k
12
3
123
特征x1
11
2
-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)';
endc1=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)';
endc2=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])figureezplot(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
要求编写程序,写出判别函数,并打出图表。
解:
clearallw=[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<=0flagS(i)=0;W=W+rowk*w(i,:
);
else
flagS(i)=1;
end
endenddisp('W=')disp(W)disp('k=')disp(k)wp1=[00;01];wp2=[10;11];plot(wp1(:
1),wp1(:
2),'o')holdonplot(wp2(:
1),wp2(:
2),'*')holdony=-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
判别函数为:
g(x)3x11
3.编程实现下列样本的fisher法分类:
1:
0
0
T
0T,
1
0
T
0T,1
0
T
1T,
1
1
T
0
T
T
T
T
2:
0
0
1T,
0
1
1T,0
1
0T,
1
1
1
解:
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'