Bayes分类器设计 2Word下载.docx
《Bayes分类器设计 2Word下载.docx》由会员分享,可在线阅读,更多相关《Bayes分类器设计 2Word下载.docx(13页珍藏版)》请在冰点文库上搜索。
由最小错误概率判决规则,可得采用如下的函数作为判别函数
这里,
为类别
发生的先验概率,
的类条件概率密度函数,而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--'
概率密度'
类条件概率密度曲线'
axistight;
%作后验概率曲线
fori=1:
2
pwx(i,:
)=px(i,:
)*P(i)、/(px(1,:
)*P
(1)+px(2,:
)*P
(2));
end
plot(x,pwx(1,:
x,pwx(2,:
后验概率'
后验概率曲线'
%计算给定生化化验值的类条件概率密度曲线
forj=1:
n
s=a(j);
PXW1=spline(x,px(1,:
),s);
PXW2=spline(x,px(2,:
PXW=[PXW1,PXW2];
disp('
样本'
s
%计算后验概率,判断输出
fori=1:
Pwx(i)=PXW(i)*P(i)/(PXW
(1)*P
(1)+PXW
(2)*P
(2));
end
后验概率P(wi|x)='
Pwx
plot(x,pwx(1,:
xlabel('
ylabel('
title('
holdon
plot(s,Pwx
(1),'
or'
s,Pwx
(2),'
ob'
axistight;
holdoff
ifPwx
(1)>
Pwx
(2)
w(j,1)=s;
正常人'
else
w(j,2)=s;
感染病人'
pause;
disp('
========================================'
正常人感染病人'
w
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%最小风险贝叶斯
%损失函数
r=[010000;
20000];
%作条件风险曲线
R(i,:
)=r(i,1)*pwx(1,:
)+r(i,2)*pwx(2,:
plot(x,R(1,:
x,R(2,:
条件风险'
条件风险曲线'
%计算给定生化化验值的条件风险
%计算后验概率
%计算条件风险,判断输出
Rx(i,:
)=r(i,1)*Pwx
(1)+r(i,2)*Pwx
(2);
%%%%%
条件风险R(ai|x)='
Rx
plot(x,R(1,:
plot(s,Rx
(1),'
s,Rx
(2),'
ifRx
(1)>
Rx
(2)
W