1、基于最小错误率的贝叶斯决策目目 录录 贝叶斯定理贝叶斯定理贝叶斯决策理论贝叶斯决策理论最小错误贝叶斯决策方法最小错误贝叶斯决策方法最小错误贝叶斯分类的计算过程最小错误贝叶斯分类的计算过程最小错误贝叶斯分类的最小错误贝叶斯分类的Matlab实现实现结论结论 称为Bayes公式。从公式可以看出基于贝叶斯决策的决策结果取决于实际已给出训练样本的类条件概率和先验概率。贝叶斯概率是通过先验知识和统计现有数据,使用概率的方法对某一事件未来可能发生的概率进行估计的。贝叶斯定理贝叶斯定理 Bayes公式:设实验E的样本空间为S,A为E的事件,B1,B2,.Bn为S的一个划分(也即类别)且有P(A)0,P(Bi
2、)0,(i=1,2,n),则下式贝叶斯决策理论贝叶斯决策理论 本次酒瓶颜色分类属于多类(4类)判别情况,对于一个模式样本X要判别它属于哪一类要基于以下步骤进行:设定类别i=(1,2,m),模式样本x=(x1,x2,xn)1.确定判别函数:M类有M个判别函数g1(x),g2(x),gm(x),用于表示多类决策规则。多类判别函数可以定义为如下三种形式:如果使得,对于一切ij成立,则将x归于i类。贝叶斯决策理论贝叶斯决策理论 2.确定决策面方程:3.进行分类器设最小错误贝叶斯决策方法最小错误贝叶斯决策方法 在模式分类问题中,人们往往希望尽量减少分类的错误,从这样的要求出发,利用概率论中的贝叶斯公式,
3、就能得出使错误率为最小的分类规则,称之为基于最小错误率的贝叶斯决策。最小错误贝叶斯决策方法最小错误贝叶斯决策方法设有M类模式,分类规则为 若 则 。上式称为最小错误贝叶斯决策规则。顾名思义,这一决策的错误率是最小的。最小错误贝叶斯决策方法最小错误贝叶斯决策方法l对于两类情况:如果l对于多类情况:如果 且最小错误贝叶斯决策方法最小错误贝叶斯决策方法l化为对数形式为l或者 其中为待测试的样本值,为学习样本的类均值,为学习样本的协方差矩阵。最小错误贝叶斯分类的计算过程l首先计算每一类样品的均值 这里我们以第二类为例,其他各类同理计算B=2352.12 2297.28 2092.62 2205.36
4、2949.16 2802.88 2063.54 2557.04 3340.14 3177.21 3243.74 3244.44 3017.11 3199.76 1411.53 535.62 584.32 1202.69 662.42 1984.98 1257.21;X2=1.0e+03*2.3947 3.1113 1.0913 最小错误贝叶斯分类的计算过程 然后求出每一类样品的协方差矩阵Si,并出其逆矩阵Si-1和行列式,l为样品在每一类序号,j和k为特征值序号,Ni为每类学习样本中包含元素的个数。其中:最小错误贝叶斯分类的计算过程l第二类样品的协方差如下:S2=1.0e+05*1.2035
5、-0.0627 0.4077 -0.0627 0.6931 -0.7499 0.4077 -0.7499 2.8182l协方差逆矩阵为S2_=1.0e-04*0.0877 -0.0081 -0.0149 -0.0081 0.2033 0.0553 -0.0149 0.0553 0.0523 在计算S2的行列式的值,前期的数值计算基本完成。最小错误贝叶斯分类的Matlab实现重要程序代码介绍:u初始化程序l%输入训练样本数,类别数,特征数,以及属于各类别的样品个数N=29;w=4;n=3;N1=4;N2=7;N3=8;N4=10;u参数计算l%计算每一类训练样品的均值lX1=mean(A);X2
6、=mean(B);X3=mean(C);X4=mean(D);l%求每一类样品的协方差矩阵l S1=cov(A);S2=cov(B);S3=cov(C);S4=cov(D);l%计算协方差矩阵的逆矩阵l S1_=inv(S1);S2_=inv(S2);S3_=inv(S3);S4_=inv(S4);l%计算协方差矩阵的行列式l S11=det(S1);S22=det(S2);S33=det(S3);S44=det(S4);最小错误贝叶斯分类的Matlab实现重要程序代码介绍:l%计算训练样本的先验概率l Pw1=N1/N;Pw2=N2/N;Pw3=N3/N;Pw4=N4/N;%Priori p
7、robabilityl%计算后验概率:在这里定义了一个循环lfor k=1:30lP1=-1/2*(sample(k,:)-X1)*S1_*(sample(k,:)-X1)+log(Pw1)-1/2*log(S11);lP2=-1/2*(sample(k,:)-X2)*S2_*(sample(k,:)-X2)+log(Pw2)-1/2*log(S22);lP3=-1/2*(sample(k,:)-X3)*S3_*(sample(k,:)-X3)+log(Pw3)-1/2*log(S33);lP4=-1/2*(sample(k,:)-X4)*S4_*(sample(k,:)-X4)+log(Pw
8、4)-1/2*log(S44);最小错误贝叶斯分类的Matlab实现完整程序:lclear;lclc;lN=29;w=4;n=3;N1=4;N2=7;N3=8;N4=10;lA=864.45 877.88 1418.79 1449.58;1647.31 2031.66 1775.89 1641.58;2665.9 3071.18 2772.9 3045.12;%A belongs to w1lB=2352.12 2297.28 2092.62 2205.36 2949.16 2802.88 2063.54 2557.04 3340.14 3177.21 3243.74 3244.44 3017
9、.11 3199.76 1411.53 535.62 584.32 1202.69 662.42 1984.98 1257.21;%B belongs to w2lC=1739.94 1756.77 1803.58 1571.17 1845.59 1692.62 1680.67 1651.52 1675.15 1652 1583.12 1731.04 1918.81 1867.5 1575.78 1713.28 2395.96 1514.98 2163.05 1735.33 2226.49 2108.97 1725.1 1570.38;%C belongs to w3最小错误贝叶斯分类的Mat
10、lab实现lD=373.3 222.85 401.3 363.34 104.8 499.85 172.78 341.59 291.02 237.63 3087.05 3059.54 3259.94 3477.95 3389.83 3305.75 3084.49 3076.62 3095.68 3077.78 2429.47 2002.33 2150.98 2462.86 2421.83 3196.22 2328.65 2438.63 2088.95 2251.96;%D belongs to w4l%以上为学习样本数据的输入lX1=mean(A);X2=mean(B);X3=mean(C);X
11、4=mean(D);%求样本均值lS1=cov(A);S2=cov(B);S3=cov(C);S4=cov(D);%求样本协方差矩阵lS1_=inv(S1);S2_=inv(S2);S3_=inv(S3);S4_=inv(S4);%求协方差矩阵的逆矩阵lS11=det(S1);S22=det(S2);S33=det(S3);S44=det(S4);%求协方差矩阵的行列式lPw1=N1/N;Pw2=N2/N;Pw3=N3/N;Pw4=N4/N;%先验概率最小错误贝叶斯分类的Matlab实现l%这部分为初始样本数据计算l sample=1702.8 1639.79 2068.74 1877.93
12、1860.96 1975.3 67.81 2334.68 2535.1 1831.49 1713.11 1604.68 460.69 3274.77 2172.99 2374.98 3346.98 975.31 2271.89 3482.97 946.7 1783.64 1597.99 2261.31 198.83 3250.45 2445.08 1494.63 2072.59 2550.51 1597.03 1921.52 2126.76最小错误贝叶斯分类的Matlab实现 1598.93 1921.08 1623.33 1243.13 1814.07 3441.07 2336.31 264
13、0.26 1599.63 3300.12 2373.61 2144.47 2501.62 591.51 426.31 3105.29 2057.8 1507.13 1556.89 1954.51 343.07 3271.72 2036.94 2201.94 3196.22 935.53 2232.43 3077.87 1298.87 1580.1 1752.07 2463.04 1962.4 1594.97 1835.95最小错误贝叶斯分类的Matlab实现 1495.18 1957.44 3498.02 1125.17 1594.39 2937.73 24.22 3447.31 2145.0
14、1 1269.07 1910.72 2701.97 1802.07 1725.81 1966.35 1817.36 1927.4 2328.79 1860.45 1782.88 1875.13;%这部分为测试数据输入lfor k=1:30lP1=-1/2*(sample(k,:)-X1)*S1_*(sample(k,:)-X1)+log(Pw1)-1/2*log(S11);l%第一类的判别函数lP2=-1/2*(sample(k,:)-X2)*S2_*(sample(k,:)-X2)+log(Pw2)-1/2*log(S22);l%第二类的判别函数最小错误贝叶斯分类的Matlab实现lP3=-
15、1/2*(sample(k,:)-X3)*S3_*(sample(k,:)-X3)+log(Pw3)-1/2*log(S33);%第三类的判别函数lP4=-1/2*(sample(k,:)-X4)*S4_*(sample(k,:)-X4)+log(Pw4)-1/2*log(S44);l%第四类的判别函数lP=P1 P2 P3 P4lPmax=max(P)l if P1=max(P)l w=1 plot3(sample(k,1),sample(k,2),sample(k,3),ro);grid on;hold on;elseif P2=max(P)w=2 plot3(sample(k,1),sa
16、mple(k,2),sample(k,3),b);grid on;hold on;最小错误贝叶斯分类的Matlab实现lelseif P3=max(P)l w=3l plot3(sample(k,1),sample(k,2),sample(k,3),g+);grid on;hold on;l elseif P4=max(P)l w=4l plot3(sample(k,1),sample(k,2),sample(k,3),y*);grid on;hold on;l elsel return%判别函数最大值对应的类别l endlend最小错误贝叶斯分类的Matlab实现运行程序,查看仿真结果:最小错误贝叶斯分类的Matlab实现MATLAB程序运行结果:P=-34.7512 -37.7619 -16.6744-171.1604Pmax=-16.6744w=3P=-49.5808 -32.0756 -19.1319-185.7206Pmax=-19.1319w=3最小错误贝叶斯分类的Matlab实现数数据据编编号号原原始始分分类类预预测测分分类类数数据据编编号号原原始始分分类类预预测测分分类
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1