《模式识别导论》作业。
姓名: 学号: 院系:自动化学院成绩。
一、作业要求。
该数据集有两类,每个样本有两个特征,类别1(文件)含有150个样本,类别2(文件)含有250个样本(.txt文件可以直接在matlab中读入),分别取类别1的前100个和类别2的前200个样本作为训练样本,剩下的作为测试样本。
要求: 根据基于最小错误率的贝叶斯决策理论设计分类器;
叙述实验具体步骤,给出所设计的分类器对训练样本和测试样本的错误率;
提交的作业需包含matlab程序**。
绘制分类结果(包含决策边界)的图像。
二、实验原理。
多元正太分布的概率密度函数由下式定义。
由最小错误概率判决规则,可得采用如下的函数作为判别函数。
这里,为类别发生的先验概率,为类别的类条件概率密度函数,而n为类别数。
设类别,i=1,2,……n的类条件概率密度函数,i=1,2,……n服从正态分布,即有~,那么上式就可以写为。
由于对数函数为单调变化的函数,用上式右端取对数后得到的新的判别函数替代原来的判别函数不会改变相应分类器的性能。因此,可取。
显然,上式中的第二项与样本所属类别无关,将其从判别函数中消去,不会改变分类结果。这样,判别函数可简化为以下形式。
三、实验步骤。
1、求出两类样本的均值。
2、求每一类样本的协方差矩阵。
式中,l代表样本在类中的序号,其中。
代表类的第l个样本,第j个特征值;
代表类的个样品第j个特征的平均值。
代表类的第l个样品,第k个特征值;
代表类的个样品第k个特征的平均值。
类的协方差矩阵为。
3、计算出每一类的协方差矩阵的逆矩阵以及协方差矩阵的行列式。
4、求出每一类的先验概率。
5、将各个数值代入判别函数。
判别边界为
6、把各个数据代入函数。
后与0比较后得到错误率。
四、实验结果。
根据matlab的计算结果可得。
类别1训练样本的错误率为4%,类别2训练样本的错误率为5%;
类别1测试样本的错误率为6%,类别2训练样本的错误率为4%。
实验图。图1 训练样本分类结果。
如上图所示,“.代表类别1的训练样本,“*代表类别2的训练样本,绿线为决策边界;
图2 测试样本分类结果。
如上图所示,“.代表类别1的测试样本,“*代表类别2的测试样本,绿线为决策边界;
五、实验程序**。
function g = pattern(x,y)
clear;
s1 = load('e:\lwz\')原始数据class1导入s1
s2 = load('e:\lwz\')原始数据class2导入s2
for i = 1:100
for j = 1:2
type1(i,j) =s1(i,j);%将class1的前100个数据导入type1当中,作为训练样本。
endend
for i = 1:200
for j = 1:2
type2(i,j) =s2(i,j);%将class2的前200个数据导入type2当中,作为训练样本。
endend
求训练样本的均值。
sumx1 = sum(type1,1);
meanx1 = sumx1(1,1) /100;
meany1 = sumx1(1,2) /100;
sumx2 = sum(type2,1);
meanx2 = sumx2(1,1) /200;
meany2 = sumx2(1,2) /200;
求协方差矩阵。
z1(2,2) =0;
for i = 1:100
z1(1,1) =z1(1,1) +type1(i,1)-meanx1)^2;
z1(1,2) =z1(1,2) +type1(i,1)-meanx1)*(type1(i,2)-meany1);
z1(2,1) =z1(2,1) +type1(i,2)-meany1)*(type1(i,1)-meanx1);
z1(2,2) =z1(2,2) +type1(i,2)-meany1)^2;
endz1(1,1) =z1(1,1) /99;
z1(1,2) =z1(1,2) /99;
z1(2,1) =z1(2,1) /99;
z1(2,2) =z1(2,2) /99;
z2(2,2) =0;
for i = 1:200
z2(1,1) =z2(1,1) +type2(i,1)-meanx2)^2;
z2(1,2) =z2(1,2) +type2(i,1)-meanx2)*(type2(i,2)-meany2);
z2(2,1) =z2(2,1) +type2(i,2)-meany2)*(type2(i,1)-meanx2);
z2(2,2) =z2(2,2) +type2(i,2)-meany2)^2;
endz2(1,1) =z2(1,1) /199;
z2(1,2) =z2(1,2) /199;
z2(2,1) =z2(2,1) /199;
z2(2,2) =z2(2,2) /199;
z1_inv =
z1_det =
z2_det =
z2_det =
z1_inv = inv(z1);%求协方差矩阵的逆。
z2_inv = inv(z2);%求协方差矩阵的行列式。
z1_det = det(z1);
z2_det = det(z2);
求出两类样本的先验概率。
p1 = 100 / 300;
p2 = 200 / 300;
syms x y;
g = 0.5)*[x-meanx1,y-meany1]*z1_inv*[x-meanx1;y-meany1] +log(abs(z1_det))*0.5 + log(p1) -0.
5)*[x-meanx2,y-meany2]*z2_inv*[x-meanx2;y-meany2] +log(abs(z2_det))*0.5 + log(p2))
画图命令。ezplot(pattern);
模式识别作业
6.题目 fisher分类和基于核的fisher分类的设计与实现研究。具体内容 1.简述fisher分类和基于核的fisher分类的算法原理 2.举出实例 3.用matlab软件编写程序实现 4.分析实验结果。fisher分类和基于核的fisher分类的设计与实现研究。1 fisher分类和基于核的...
模式识别作业
模式识别课程matlab程序作业。模式识别贝叶斯决策 正常状态细胞p 1 0.9,异常状态细胞p 2 0.1,类条件概率密度分别为p x 1 n 0,1 p x 2 n 0.2,1.5 现有一待识别细胞,其观察值为0.2,用matlab写出程序对该细胞进行分类。编写程序如下 close all cl...
模式识别作业
感知器训练算法。在设计贝叶斯分类器时需要设法获取样本统计分布的资料,应知道先验概率及类分布概率密度函数等。然而,在样本数不充足条件下要获取准确的统计分布是很困难的。这样,可以考虑另外一种分类器设计方法,即根据训练样本集提供的信息,直接进行分类器设计。下面实验是针对线性可分情况下的感知器算法。实验所用...