Bayes分类器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一 Bayes 分类器设计

【实验目的】

对模式识别有一个初步的理解,能够根据自己的设计对贝叶斯决策理论算法有一个深刻地认识,理解二类分类器的设计原理。

【实验条件】

Matlab 软件

【实验原理】

根据贝叶斯公式,给出在类条件概率密度为正态分布时具体的判别函数表达式,用此判别函数设计分类器。数据随机生成,比如生成两类样本(如鲈鱼和鲑鱼),每个样本有两个特征(如长度和亮度),每类有若干个(比如50个)样本点,假设每类样本点服从二维正态分布,随机生成具体数据,然后估计每类的均值与协方差,在下列各种情况下求出分类边界。先验概率自己给定,比如都为0.5。如果可能,画出在两类协方差不相同的情况下的分类边界。

若第一类的样本为{}12,,n x x x ,则第一类均值的估计为1

1ˆn k k x n μ==∑,协方差的估计为1

1ˆˆˆ()()n T k k k x x n μμ=∑=--∑。则在两类协方差不相同的情况下的判别函数为:

判别边界为g1(x)-g2(x)=0,是一条一般二次曲线(可能是椭圆、双曲线、抛物线等)。

【实验内容】

1、

自动随机生成两类服从二维正态分布的样本点 2、

计算两类样本的均值和协方差矩阵 3、

按照两类协方差不相同情况下的判别函数,求出判别方程曲线。 4、 通过修改不同的参数(均值、方差、协方差矩阵),观察判别方程曲线的变化。

【实验程序】

clear all;

close all;

samplenum = 50;%样本的个数

n1(:,1) = normrnd(8,4,samplenum,1);%产生高斯分布的二维随机样本,第一个参数为均值,第二个为方差

n1(:,2) = normrnd(6,4,samplenum,1);%产生高斯分布的二维随机样本,第一个参数为均值,第二个为方差

n2(:,1) = normrnd(14,4,samplenum,1);%产生高斯分布的二维随机样本,第一个参数为均值,第二个为方差

n2(:,2) = normrnd(16,4,samplenum,1);%产生高斯分布的二维随机样本,第一个参数为均值,第二个为方差

scatter(n1(1:samplenum,1),n1(1:samplenum,2),'ro');%画出样本

hold on

scatter(n2(1:samplenum,1),n2(1:samplenum,2),'g*');%画出样本

u1 = mean(n1);%计算第一类样本的均值

e1=0;

for i=1:20

e1 = e1+(n1(i,:)-u1)'*(n1(i,:)-u1);%计算协方差矩阵

end;

u2 = mean(n2);%计算第二类样本的均值

e2=0;

for i=1:20

e2 = e2+(n2(i,:)-u2)'*(n2(i,:)-u2);%计算协方差矩阵

end;

e2=e2/20;%计算协方差矩阵

e1=e1/20;%计算协方差矩阵

%-------------通过改变条件来完成不同的曲线---------

% e2 = e1;

%--------------------------------------------------

u1 = u1';

u2 = u2';

scatter(u1(1,1),u1(2,1),'b+');%画出样本中心

scatter(u2(1,1),u2(2,1),'b+');%画出样本中心

line([u1(1,1),u2(1,1)],[u1(2,1),u2(2,1)]); %画出样本中心连线

%求解分类方程

W1=-1/2*inv(e1);

w1=inv(e1)*u1;

w10=-1/2*u1'*inv(e1)*u1-1/2*log(det(inv(e1)))+log(0.5);%假设w1的先验概率为0.5

W2=-1/2*inv(e2);

w2=inv(e2)*u2;

w20=-1/2*u2'*inv(e2)*u2-1/2*log(det(inv(e2)))+log(0.5);% 假设w2的先验概率为0.5

syms x y;

fn = [x,y]*(W1-W2)*[x,y]'+(w1-w2)'*[x,y]'+w10-w20;

ezplot(fn,[0,30]);

相关文档
最新文档