模式识别实验报告一二.docx
- 文档编号:16891295
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:24
- 大小:207.68KB
模式识别实验报告一二.docx
《模式识别实验报告一二.docx》由会员分享,可在线阅读,更多相关《模式识别实验报告一二.docx(24页珍藏版)》请在冰点文库上搜索。
模式识别实验报告一二
信息与通信工程学院
模式识别实验报告
班级:
姓名:
学号:
日期:
2011年12月
实验一、Bayes分类器设计
一、实验目的:
1.对模式识别有一个初步的理解
2.能够根据自己的设计对贝叶斯决策理论算法有一个深刻地认识
3.理解二类分类器的设计原理
二、实验条件:
matlab软件
三、实验原理:
最小风险贝叶斯决策可按下列步骤进行:
1)在已知
,
,i=1,…,c及给出待识别的
的情况下,根据贝叶斯公式计算出后验概率:
j=1,…,x
2)利用计算出的后验概率及决策表,按下面的公式计算出采取
i=1,…,a的条件风险
i=1,2,…,a
3)对
(2)中得到的a个条件风险值
i=1,…,a进行比较,找出使其条件风险最小的决策
,即
则
就是最小风险贝叶斯决策。
四、实验内容
假定某个局部区域细胞识别中正常(
)和非正常(
)两类先验概率分别为
正常状态:
P(
)=;
异常状态:
P(
)=。
现有一系列待观察的细胞,其观察值为
:
已知先验概率是的曲线如下图:
类条件概率分布正态分布分别为(-2,)(2,4)试对观察的结果进行分类。
五、实验步骤:
1.用matlab完成分类器的设计,说明文字程序相应语句,子程序有调用过程。
2.根据例子画出后验概率的分布曲线以及分类的结果示意图。
3.最小风险贝叶斯决策,决策表如下:
状态
决策
α1
0
6
α2
1
0
重新设计程序,完成基于最小风险的贝叶斯分类器,画出相应的后验概率的分布曲线和分类结果,并比较两个结果。
六、实验代码
1.最小错误率贝叶斯决策
x=[
]
pw1=;pw2=;
e1=-2;a1=;
e2=2;a2=2;
m=numel(x);%得到待测细胞个数
pw1_x=zeros(1,m);%存放对w1的后验概率矩阵
pw2_x=zeros(1,m);%存放对w2的后验概率矩阵
results=zeros(1,m);%存放比较结果矩阵
fori=1:
m
%计算在w1下的后验概率
pw1_x(i)=(pw1*normpdf(x(i),e1,a1))/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
%计算在w2下的后验概率
pw2_x(i)=(pw2*normpdf(x(i),e2,a2))/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
end
fori=1:
m
ifpw1_x(i)>pw2_x(i)%比较两类后验概率
result(i)=0;%正常细胞
else
result(i)=1;%异常细胞
end
end
a=[-5:
:
5];%取样本点以画图
n=numel(a);
pw1_plot=zeros(1,n);
pw2_plot=zeros(1,n);
forj=1:
n
pw1_plot(j)=(pw1*normpdf(a(j),e1,a1))/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));
%计算每个样本点对w1的后验概率以画图
pw2_plot(j)=(pw2*normpdf(a(j),e2,a2))/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));
end
figure
(1);
holdon
plot(a,pw1_plot,'co',a,pw2_plot,'r-.');
fork=1:
m
ifresult(k)==0
plot(x(k),,'cp');%正常细胞用五角星表示
else
plot(x(k),,'r*');%异常细胞用*表示
end;
end;
legend('正常细胞后验概率曲线','异常细胞后验概率曲线','正常细胞','异常细胞');
xlabel('样本细胞的观察值');
ylabel('后验概率');
title('后验概率分布曲线');
gridon
return
%实验内容仿真:
x=[,,,,,,,,,,,,,,,,,,,,,,,]
disp(x);
pw1=;
pw2=;
[result]=bayes(x,pw1,pw2);
2.最小风险贝叶斯决策
x=[
]
pw1=;pw2=;
m=numel(x);%得到待测细胞个数
R1_x=zeros(1,m);%存放把样本X判为正常细胞所造成的整体损失
R2_x=zeros(1,m);%存放把样本X判为异常细胞所造成的整体损失
result=zeros(1,m);%存放比较结果
e1=-2;a1=;
e2=2;a2=2;
%类条件概率分布px_w1:
(-2,)px_w2(2,4)
r11=0;r12=2;
r21=4;r22=0;
%风险决策表
fori=1:
m
%计算两类风险值
R1_x(i)=r11*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r21*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
R2_x(i)=r12*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r22*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
end
fori=1:
m
ifR2_x(i)>R1_x(i)%第二类比第一类风险大
result(i)=0;%判为正常细胞(损失较小),用0表示
else
result(i)=1;%判为异常细胞,用1表示
end
end
a=[-5:
:
5];%取样本点以画图
n=numel(a);
R1_plot=zeros(1,n);
R2_plot=zeros(1,n);
forj=1:
n
R1_plot(j)=r11*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r21*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))
R2_plot(j)=r12*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r22*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))
%计算各样本点的风险以画图
end
figure
(1);
holdon
plot(a,R1_plot,'co',a,R2_plot,'r-.');
fork=1:
m
ifresult(k)==0
plot(x(k),,'cp');%正常细胞用五角星表示
else
plot(x(k),,'r*');%异常细胞用*表示
end;
end;
legend('正常细胞','异常细胞','Location','Best');
xlabel('细胞分类结果');
ylabel('条件风险');
title('风险判决曲线');
gridon
return
%实验内容仿真:
x=[,,,,,,,,,,,,,,,,,,,,,,,]
disp(x);
pw1=;
pw2=;
[result]=bayes(x,pw1,pw2);
七、实验结果
1.最小错误率贝叶斯决策
后验概率曲线与判决显示在上图中
后验概率曲线:
带红色虚线曲线是判决为异常细胞的后验概率曲线
青色实线曲线是为判为正常细胞的后验概率曲线
根据最小错误概率准则,判决结果显示在曲线下方:
五角星代表判决为正常细胞,*号代表异常细胞
各细胞分类结果(0为判成正常细胞,1为判成异常细胞):
000000000000010111000101
2.最小风险贝叶斯决策
风险判决曲线如上图所示:
带红色虚线曲线是异常细胞的条件风险曲线;青色圆圈曲线是正常细胞的条件风险曲线
根据贝叶斯最小风险判决准则,判决结果显示在曲线下方:
五角星代表判决为正常细胞,*号代表异常细胞
各细胞分类结果(0为判成正常细胞,1为判成异常细胞):
100000000000110111000101
八、实验分析
由最小错误率的贝叶斯判决和基于最小风险的贝叶斯判决得出的图形中的分类结果可看出,样本、在前者中被分为“正常细胞”,在后者中被分为“异常细胞”,分类结果完全相反。
分析可知在最小风险的贝叶斯判决中,影响结果的因素多了一个“损失”。
在第一张图中,这两个样本点下两类决策的后验概率相差很小,当结合最小风险贝叶斯决策表进行计算时,“损失”起了主导作用,导致了相反的结果的出现。
同时,最小错误率贝叶斯决策就是在0-1损失函数条件下的最小风险贝叶斯决策,即前者是后者的特例。
九、实验心得
通过本次实验,我对模式识别有了一个初步的理解,开始对模式识别的相关知识从书本上转移到了实践中,并跟据自己的设计对贝叶斯决策理论算法有一个深刻地认识,同时也理解二类分类器的设计原理。
同时,之前只学过浅显的Matlab知识,用Matlab实现数值计算的能力又一次得到了训练,对以后的学习和实验都有极大的帮助。
实验二、基于Fisher准则线性分类器设计
一、实验目的:
1.进一步了解分类器的设计概念
2.能够根据自己的设计对线性分类器有更深刻地认识
3.理解Fisher准则方法确定最佳线性分界面方法的原理及Lagrande乘子求解的原理
二、实验条件:
matlab软件
三、实验原理:
线性判别函数的一般形式可表示成
其中
根据Fisher选择投影方向W的原则,即使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,用以评价投影方向W的函数为:
上面的公式是使用Fisher准则求最佳法线向量的解,该式比较重要。
另外,该式这种形式的运算,我们称为线性变换,其中
式一个向量,
是
的逆矩阵,如
是d维,
和
都是d×d维,得到的
也是一个d维的向量。
向量
就是使Fisher准则函数
达极大值的解,也就是按Fisher准则将d维X空间投影到一维Y空间的最佳投影方向,该向量
的各分量值是对原d维特征向量求加权和的权值。
以上讨论了线性判别函数加权向量W的确定方法,并讨论了使Fisher准则函数极大的d维向量
的计算方法,但是判别函数中的另一项
尚未确定,一般可采用以下几种方法确定
如
或者
或当
与
已知时可用
……
当W0确定之后,则可按以下规则分类,
使用Fisher准则方法确定最佳线性分界面的方法是一个著名的方法,尽管提出该方法的时间比较早,仍见有人使用。
四、实验内容:
已知有两类数据
和
二者的概率已知
=,
=。
中数据点的坐标对应一一如下:
数据:
x=
y=
z=
数据点的对应的三维坐标为
x2=
y2=
z2=
数据的样本点分布如下图:
五、实验步骤:
1.把数据作为样本,根据Fisher选择投影方向
的原则,使原样本向量在该方向上的投影能兼顾类间分布尽可能分开,类内样本投影尽可能密集的要求,求出评价投影方向
的函数,并在图形表示出来。
并在实验报告中表示出来,并求使
取极大值的
。
用matlab完成Fisher线性分类器的设计,程序的语句要求有注释。
2.根据上述的结果并判断(1,,),,,,,,,,,(,,),属于哪个类别,并画出数据分类相应的结果图,画出其在
上的投影。
3.回答如下问题,分析一下
的比例因子对于Fisher判别函数没有影响的原因。
六、实验代码
x1=[
];
x2=[
];
x3=[
];
%将x1、x2、x3变为行向量
x1=x1(:
);x2=x2(:
);x3=x3(:
);
%计算第一类的样本均值向量m1
m1
(1)=mean(x1);
m1
(2)=mean(x2);
m1(3)=mean(x3);
%计算第一类样本类内离散度矩阵S1
S1=zeros(3,3);
fori=1:
36
S1=S1+[-m1
(1)+x1(i)-m1
(2)+x2(i)-m1(3)+x3(i)]'*[-m1
(1)+x1(i)-m1
(2)+x2(i)-m1(3)+x3(i)];
end
%w2的数据点坐标
x4=[
];
x5=[
];
x6=[
];
x4=x4(:
);
x5=x5(:
);
x6=x6(:
);
%计算第二类的样本均值向量m2
m2
(1)=mean(x4);
m2
(2)=mean(x5);
m2(3)=mean(x6);
%计算第二类样本类内离散度矩阵S2
S2=zeros(3,3);
fori=1:
36
S2=S2+[-m2
(1)+x4(i)-m2
(2)+x5(i)-m2(3)+x6(i)]'*[-m2
(1)+x4(i)-m2
(2)+x5(i)-m2(3)+x6(i)];
end
%总类内离散度矩阵Sw
Sw=zeros(3,3);
Sw=S1+S2;
%样本类间离散度矩阵Sb
Sb=zeros(3,3);
Sb=(m1-m2)'*(m1-m2);
%最优解W
W=Sw^-1*(m1-m2)'
%将W变为单位向量以方便计算投影
W=W/sqrt(sum(W.^2));
%计算一维Y空间中的各类样本均值M1及M2
fori=1:
36
y(i)=W'*[x1(i)x2(i)x3(i)]';
end
M1=mean(y);
fori=1:
36
y(i)=W'*[x4(i)x5(i)x6(i)]';
end
M2=mean(y);
%利用当P(w1)与P(w2)已知时的公式计算W0
p1=;p2=;
W0=-(M1+M2)/2+(log(p2/p1))/(36+36-2);
%计算将样本投影到最佳方向上以后的新坐标
X1=[x1*W
(1)+x2*W
(2)+x3*W(3)]';
X2=[x4*W
(1)+x5*W
(2)+x6*W(3)]';%得到投影长度
XX1=[W
(1)*X1;W
(2)*X1;W(3)*X1];
XX2=[W
(1)*X2;W
(2)*X2;W(3)*X2];%得到新坐标
%绘制样本点
figure
(1);
plot3(x1,x2,x3,'r*');%第一类
holdon
plot3(x4,x5,x6,'gp');%第二类
legend('第一类点','第二类点');
title('Fisher线性判别曲线');
W1=5*W;
%画出最佳方向
line([-W1
(1),W1
(1)],[-W1
(2),W1
(2)],[-W1(3),W1(3)],'color','g');
%判别已给点的分类
a1=[1,,]';a2=[,,]';a3=[,,]';a4=[,,]';a5=[,,]';
A=[a1a2a3a4a5];
n=size(A,2);
%下面代码在改变样本时可不修改
%绘制待测数据投影到最佳方向上的点
fork=1:
n
A1=A(:
k)'*W;
A11=W*A1;%得到待测数据投影
y=W'*A(:
k)+W0;%计算后与0相比以判断类别,大于0为第一类,小于0为第二类
ify>0
plot3(A(1,k),A(2,k),A(3,k),'ro');%点为"rp"对应第一类
plot3(A11
(1),A11
(2),A11(3),'ro');%投影为"r+"对应ro类
else
plot3(A(1,k),A(2,k),A(3,k),'ch');%点为"bh"对应ch类
plot3(A11
(1),A11
(2),A11(3),'ch');%投影为"b*"对应ch类
end
end
%画出最佳方向
line([-W1
(1),W1
(1)],[-W1
(2),W1
(2)],[-W1(3),W1(3)],'color','m');
view([,30]);
axis([-2,3,-1,3,,]);
gridon
holdoff
七、实验结果
下图中,红色的*是给出的第一类样本点,绿色的五角星是第二类样本点。
下方的实直线是最佳投影方向。
待测数据投影在其上,圆圈是被分为第一类的样本点,六角星是被分为第二类的样本点。
使
取极大值的W=(,,)
八、实验分析
的比例因子对于Fisher判别函数没有影响的原因:
在本实验中,最重要的是W的方向,或者说是在此方向上数据的投影,所以W的比例因子,即它是单位向量的多少倍长就没那么重要了,不管比例因子大小是多少,在最后求投影时都会被消掉。
九、实验心得
通过本次试验,我进一步了解分类器的设计概念,对模式识别的实际数值计算有了更多的了解,同时根据自己的设计对线性分类器有更深刻地认识,并通过本次试验基本理解了Fisher准则方法确定最佳线性分界面方法的原理及Lagrande乘子求解的原理。
同时,运用Matlab的水平较前一个实验又有了一定的提高,在实验中看到自己的进步,自己的信心又增加了一些,这对以后的学习和实践都会有一定的影响。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模式识别 实验 报告 一二