Bayes分类器设计.docx

上传人:b****8 文档编号:9588631 上传时间:2023-02-05 格式:DOCX 页数:13 大小:145.75KB
下载 相关 举报
Bayes分类器设计.docx_第1页
第1页 / 共13页
Bayes分类器设计.docx_第2页
第2页 / 共13页
Bayes分类器设计.docx_第3页
第3页 / 共13页
Bayes分类器设计.docx_第4页
第4页 / 共13页
Bayes分类器设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Bayes分类器设计.docx

《Bayes分类器设计.docx》由会员分享,可在线阅读,更多相关《Bayes分类器设计.docx(13页珍藏版)》请在冰豆网上搜索。

Bayes分类器设计.docx

Bayes分类器设计

实验二Bayes分类器设计

一、实验目的

通过实验,加深对统计判决与概率密度估计基本思想、方法的认识,了解影响Bayes分类器性能的因素,掌握基于Bayes决策理论的随机模式分类的原理和方法.

二、实验内容

设计Bayes决策理论的随机模式分类器。

假定某个局部区域细胞识别中正常(a1)和非正常(a2)两类先验概率分别为正常状态:

P(a1)=0。

9;异常状态:

P(a2)=0。

1。

三、方法手段

Bayes分类器的基本思想是依据类的概率、概密,按照某种准则使分类结果从统计上讲是最佳的。

换言之,根据类的概率、概密将模式空间划分成若干个子空间,在此基础上形成模式分类的判决规则。

准则函数不同,所导出的判决规则就不同,分类结果也不同。

使用哪种准则或方法应根据具体问题来确定。

四、Bayes算法

1.实验原理

多元正太分布的概率密度函数由下式定义

由最小错误概率判决规则,可得采用如下的函数作为判别函数

这里,

为类别

发生的先验概率,

为类别

的类条件概率密度函数,而N为类别数。

设类别

,i=1,2,……,N的类条件概率密度函数

,i=1,2,……,N服从正态分布,即有

~

,那么上式就可以写为

由于对数函数为单调变化的函数,用上式右端取对数后得到的新的判别函数替代原来的判别函数

不会改变相应分类器的性能.因此,可取

显然,上式中的第二项与样本所属类别无关,将其从判别函数中消去,不会改变分类结果。

这样,判别函数

可简化为以下形式

2。

实验步骤

1、求出两类样本的均值

2、求每一类样本的协方差矩阵

式中,l代表样本在类中的序号,其中

代表

类的第l个样本,第j个特征值;

代表

类的

个样品第j个特征的平均值

代表

类的第l个样品,第k个特征值;

代表

类的

个样品第k个特征的平均值。

类的协方差矩阵为

3、计算出每一类的协方差矩阵的逆矩阵

以及协方差矩阵的行列式

4、求出每一类的先验概率

5、将各个数值代入判别函数

判别边界为

五、Bayes分类器实验结果

已知(图1)数据a=[0.37600.02400。

2440—0。

17400。

0460-0.39400.37600.77200.26600。

5080—0。

4380-0。

06400。

81600.59600。

11200。

35400。

8380—0。

76800。

4200-0.7900];其满足正态分布(图2)。

1.最小错误率贝叶斯决策

图1样本数据

图2样本的类条件概率

根据最小错误率准侧,计算其后验条件概率(图3),通过程序运行出结果细胞分类结果为:

10001000000000000110,其中,0为判成正常细胞,1为判成异常细胞。

图3后验条件概率

2。

最小风险贝叶斯决策

根据最小风险判别准侧,其损失函数赋值为r=[010000;20000],则计算其条件风险概率(图4)通过程序运行出结果细胞分类结果为:

11111110111101110111,其中,0为判成正常细胞,1为判成异常细胞。

图4条件风险概率

 

3.两类分类器结果不同原因分析

由最小错误率的贝叶斯判决和基于最小风险的贝叶斯判决得出图形中的分类结果可以看出,样本0。

0240,0。

2440等在前者中被分为“正常细胞”,在后者被分为“异常细胞",分类结果不同。

因为在给予最小风险贝叶斯判决中,影响决策结果的因素多了损失r这一项,所以当结合最小风险贝叶斯决策表进行计算时,‘损失’起了主导作用,导致出现两者结果的不一致。

六、Bayes分类器程序代码

functiony=my_bayes(n,a)

%%%%%%%%%%%%%最小错误率贝叶斯决策

%构造实验数据

a=[0。

37600。

02400.2440-0。

17400。

0460—0。

39400.37600.77200。

26600.5080-0.4380—0。

06400.81600。

59600.11200.35400.8380-0.76800。

4200—0.7900];

n=20;%样本数

a=(round(100*rand(n,1))/100)*2。

2-0。

9;

%样本数为n,特征数为1,数据在-0.9与1。

3之间

figure

plot(1:

n,a,'rx')

xlabel('样本数');

ylabel(’生化化验值');

title(’样本数据:

生化化验值');

pause;

%先验概率

P=[0.90.1];

%作类条件概率密度曲线p(x|wi)

x=-0.9:

0。

01:

1.3;

px(1,:

)=(1/(sqrt(2*pi)*0。

3))*exp(—0。

5*(x/0.3).^2);

px(2,:

)=(1/(sqrt(2*pi)*0。

1))*exp(—0.5*((x—1)/0。

1).^2);

figure;

plot(x,px(1,:

),’b’,x,px(2,:

),’r--’);

xlabel(’生化化验值’);

ylabel('概率密度’);

title('类条件概率密度曲线’)

axistight;

pause;

%作后验概率曲线

fori=1:

2

pwx(i,:

)=px(i,:

)*P(i)./(px(1,:

)*P

(1)+px(2,:

)*P

(2));

end

figure;

plot(x,pwx(1,:

),'b',x,pwx(2,:

),’r--');

xlabel(’生化化验值’);

ylabel(’后验概率');

title('后验概率曲线')

axistight;

pause;

%计算给定生化化验值的类条件概率密度曲线

forj=1:

n

s=a(j);

PXW1=spline(x,px(1,:

),s);

PXW2=spline(x,px(2,:

),s);

PXW=[PXW1,PXW2];

disp(’样本’)

s

%计算后验概率,判断输出

fori=1:

2

Pwx(i)=PXW(i)*P(i)/(PXW

(1)*P

(1)+PXW

(2)*P

(2));

end

disp(’后验概率P(wi|x)=’)

Pwx

plot(x,pwx(1,:

),’b',x,pwx(2,:

),’r--');

xlabel(’生化化验值’);

ylabel(’后验概率');

title('后验概率曲线')

holdon

plot(s,Pwx

(1),’or’,s,Pwx

(2),’ob’);

axistight;

holdoff

ifPwx

(1)>Pwx

(2)

w(j,1)=s;

disp(’正常人’)

else

w(j,2)=s;

disp(’感染病人')

end

pause;

end

disp('========================================’)

disp(’正常人感染病人')

w

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%最小风险贝叶斯

n=20;%样本数

figure

plot(1:

n,a,’rx')

xlabel(’样本数');

ylabel('生化化验值’);

title(’样本数据:

生化化验值’);

pause;

%先验概率

P=[0.90.1];

%作类条件概率密度曲线p(x|wi)

x=—0。

9:

0。

01:

1。

3;

px(1,:

)=(1/(sqrt(2*pi)*0。

3))*exp(—0。

5*(x/0.3).^2);

px(2,:

)=(1/(sqrt(2*pi)*0。

1))*exp(—0.5*((x-1)/0.1).^2);

figure;

plot(x,px(1,:

),’b',x,px(2,:

),'r--');

xlabel(’生化化验值');

ylabel('概率密度’);

title(’类条件概率密度曲线')

axistight;

pause;

%作后验概率曲线

fori=1:

2

pwx(i,:

)=px(i,:

)*P(i)。

/(px(1,:

)*P

(1)+px(2,:

)*P

(2));

end

figure;

plot(x,pwx(1,:

),'b',x,pwx(2,:

),’r-—');

xlabel(’生化化验值’);

ylabel(’后验概率’);

title(’后验概率曲线')

axistight;

pause;

%损失函数

r=[010000;20000];

%作条件风险曲线

fori=1:

2

R(i,:

)=r(i,1)*pwx(1,:

)+r(i,2)*pwx(2,:

);

end

figure;

plot(x,R(1,:

),'b',x,R(2,:

),’r—-’);

xlabel(’生化化验值');

ylabel(’条件风险’);

title('条件风险曲线’)

axistight;

pause;

%计算给定生化化验值的条件风险

forj=1:

n

s=a(j);

PXW1=spline(x,px(1,:

),s);

PXW2=spline(x,px(2,:

),s);

PXW=[PXW1,PXW2];

disp('样本’)

s

%计算后验概率

fori=1:

2

Pwx(i)=PXW(i)*P(i)/(PXW

(1)*P

(1)+PXW

(2)*P

(2));

end

%计算条件风险,判断输出

fori=1:

2

Rx(i,:

)=r(i,1)*Pwx

(1)+r(i,2)*Pwx

(2);%%%%%

end

disp(’条件风险R(ai|x)=')

Rx

plot(x,R(1,:

),'b’,x,R(2,:

),’r——’);

xlabel(’生化化验值');

ylabel('条件风险’);

title(’条件风险曲线')

holdon

plot(s,Rx

(1),’or',s,Rx

(2),'ob');

axistight;

holdoff

ifRx

(1)〉Rx

(2)

w(j,1)=s;

disp(’正常人’)

else

w(j,2)=s;

disp('感染病人’)

end

pause;

end

disp(’========================================’)

disp('正常人感染病人')

W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1