最小错误率贝叶斯分类器(包含matlab程序)

1. 最小错误贝叶斯分类器原理

在对模式进行识别时,在存在模棱两可的情况下,任何决策都存在判别错误的可能性。最小错误贝叶斯决策就是以错误率为自小的分类规则。使用p(e)表示错误概率,那么最小错误贝叶斯分类器的目的就是minp(e).
在这里插入图片描述
对于两种模式,其中:
在这里插入图片描述
即x属于第一类,判别为第二类的概率,x属于第二类,判别为第一类的概率。
可以看出使错误率最小的决策就是使后验概率最大的决策,因此最小错误率贝叶斯决策可写为:
在这里插入图片描述
其中,后验概率的计算使用贝叶斯公式计算,因此要已知先验概率p(ωi)以及类条件概率密度p(x|wi)。
在这里插入图片描述
判决公式还有很多等价公式。

2.最小错误率贝叶斯分类器的图形表示

在这里插入图片描述
错误率:
在这里插入图片描述
对于多类问题的决策,思路跟两类问题类似,不同的只是计算量加重了许多;可以把每一类的后验概率当做是该类的一个判别函数gi(x),决策的过程就是各类的判别函数进行比较,最后取最大的那个。使用图形表示为:
在这里插入图片描述

3.三类最小错误率贝叶斯分类器实验

(1)使用函数产生mvnrnd三类服从高斯分布的样本点。高斯函数的参数作为输入参数输入,包括均值,协方差,个数,先验概率。
(2)为了区分三类样本,第一类使用蓝色,第二类使用绿色,第三类使用红色。
第一类错分的点使用黑色三角表示下来,第二类错分的店使用黄色+表示下来,第三类使用粉红色正方形表示出来。
(3)使用函数mvnpdf()实现高斯密度函数值的计算
(4)比较高斯密度值的大小,选取最大的一类,分到那一类。

输入参数分别为:

在这里插入图片描述
实验结果:
在这里插入图片描述
在这里插入图片描述

实验代码

function self_mvnrnd1(varargin)%可自定义参数的函数
if(nargin==12)%判定输入参数是否为12
w1=mvnrnd(varargin{1},varargin{2},varargin{3});%第一类高斯函数密度值
w2=mvnrnd(varargin{5},varargin{6},varargin{7});%第二类
w3=mvnrnd(varargin{9},varargin{10},varargin{11});
figure(1);
plot(w1(:,1),w1(:,2),'bo');%蓝色o为第一类
hold on
plot(w2(:,1),w2(:,2),'g*');%绿色*为第二类
hold on
plot(w3(:,1),w3(:,2),'r^')
title('300个随机样本,蓝色o为第一类,绿色*为第二类,红色-为第三类');
w=[w1;w2;w3];
n1=0;%第一类正确个数
n2=0;%第二类正确个数
n3=0;%第三类正确的个数
figure(2);
%贝叶斯分类器
for i=1:(varargin{3}+varargin{7}+varargin{11})
    x=w(i,1);
    y=w(i,2);
    g1=mvnpdf([x,y],varargin{1},varargin{2})*varargin{4};
    g2=mvnpdf([x,y],varargin{5},varargin{6})*varargin{8};
    g3=mvnpdf([x,y],varargin{9},varargin{10})*varargin{12};
     if g1>g3&&g1>g2
        if 1<=i&&i<=varargin{3}
            n1=n1+1;%第一类正确个数
            plot(x,y,'bo');%蓝色o表示正确分为第一类的样本
            hold on;
        else
            plot(x,y,'k^');%红色的上三角形表示第一类错误分为第二类
            hold on;
        end   
     end
     if g2>g3&&g2>g1
        if varargin{3}<=i&&i<=(varargin{3}+varargin{7})
            n2=n2+1;%第一类正确个数
            plot(x,y,'g*');%绿色o表示正确分为第二类的样本
            hold on;
        else
            plot(x,y,'y+');%红色的上三角形表示第一类错误分为第二类
            hold on;
        end   
     end
    if g3>g1&&g3>g2
        if (varargin{3}+varargin{7})<=i&&i<=(+varargin{7}+varargin{3}+varargin{11})
            n3=n3+1;%第一类正确个数
            plot(x,y,'r^');%绿色o表示正确分为第二类的样本
            hold on;
        else
            plot(x,y,'ms');%红色的上三角形表示第一类错误分为第二类
            hold on;
        end   
     end
end
r1_rate=0;
r2_rate=0;
r3_rate=0;
r1_rate=n1/varargin{3}
r2_rate=n2/varargin{7}
r3_rate=n3/varargin{11}
print(r1_rate)
print(r2_rate)
print(r3_rate)
end
%%%%%%%%%
 main.m
 self_mvnrnd1([1 3],[1.5,0;0,1],100,0.2,[3,1],[1,0.5;0.5,2],100,0.4,[-1,-2],[ 1,0.5;0.5,2],100,0.4)

/

  • 8
    点赞
  • 92
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
最小错误率贝叶斯分类是一种基于贝叶斯决策理论的分类器,在matlab上实现非常方便。 首先,需要先收集和准备好带标签的训练样本数据。然后,使用matlab的统计工具箱中的贝叶斯分类函数,如`fitcnb`来训练分类器模型。 在训练过程中,贝叶斯分类会根据训练数据估计每个类别的概率密度函数,并计算出每个类别的先验概率。然后,根据贝叶斯定理计算后验概率,以确定给定输入样本属于各个类别的概率。 在模型训练完成后,可以使用`predict`函数对新样本进行分类预测。该函数将基于先前训练的模型和输入样本的特征,根据最小错误率准则来进行分类决策。 最小错误率分类器的目标是选择错误率最小的决策边界,使得分类器在测试样本上的性能最佳。它通过选择边界上的样本点来实现。基于先验概率和代价函数,最小错误率分类器可以通过最小化平均错误率来求得最佳分类边界。 在实际应用中,对于样本的特征选择与预处理等步骤,都可以使用matlab提供的丰富工具函数和工具箱来完成。此外,还可以根据实际需求对贝叶斯分类进行改进和优化,如使用核函数进行非线性分类,或者通 过特征选择和降维等方法提高分类性能。 总之,matlab提供了强大的工具和函数,可以实现最小错误率贝叶斯分类,并借助其丰富的统计和机学习功能,可以很好地应用于各种分类问题中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值