⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bayesianclassifier1.m

📁 一个基于正态分布 的贝叶斯最小错误率的分类器
💻 M
字号:
Pr_omiga1=input('请输入第一类的先验概率:');
Pr_omiga2=input('请输入第二类的先验概率:');
  Num=20;
    s1=mvnrnd([0 1],eye(2),Num)'
    s2=mvnrnd([2 0],3*eye(2),Num)'
    s11=s1(1,:);
    s12=s1(2,:);
    s21=s2(1,:);
    s22=s2(2,:);
      muGiven1=[0 1]';
    sigmaGiven1=eye(2);
    % 已知类别1的均值及及协方差
    muGiven2=[2 0]';
    sigmaGiven2=2*eye(2);

    mu1=muGiven1;
    sigma1=sigmaGiven1;
    mu2=muGiven2;
    sigma2=sigmaGiven2;

% 求正态分布条件下的基于最小错误率的Bayesian决策分类器的决策面
    
% 预求相关参量
W1 = -0.5 * inv(sigma1);
W2 = -0.5 * inv(sigma2);
omiga1= inv(sigma1) * mu1;
omiga2= inv(sigma2) * mu2;
omiga10= -0.5*mu1'*inv(sigma1)*mu1 -0.5*log(det(sigma1)) + log(Pr_omiga1);
omiga20= -0.5*mu2'*inv(sigma2)*mu2 -0.5*log(det(sigma2)) + log(Pr_omiga2);


% 决策面方程
DecisionBoundary = @(x) x'*(W1-W2)*x + (omiga1-omiga2)'*x + omiga10 - omiga20;
% 为了实现绘制隐函数图形而把DecisionBoundary函数改造成双参函数数
DB = @(x1,x2) DecisionBoundary(cat(1,x1,x2));

% 绘制决策面
hold on;
    
    % 二维样本
    
    % 绘制第1类的类中心mu及协方差
    plot(mu1(1),mu1(2),'r.');hold on;
    %ellipse(sqrt(sigma1(1,1)),sqrt(sigma1(2,2)),0,mu1(1),mu1(2),'k');
    plot(s11,s12,'r O');hold on;
    % 绘制第2类的类中心mu及协方差
    plot(mu2(1),mu2(2),'b.');
    %ellipse(sqrt(sigma2(1,1)),sqrt(sigma2(2,2)),0,mu2(1),mu2(2),'g');hold on;
    plot(s21,s22,'b +');
    % 绘制决策面
    ezplot(DB);
    title('基于最小错误率的Bayesian决策分类器');
    legend('类别1的中心点','一类分布','类别2的中心点','二类分布','决策面',1);
    axis equal;grid off;
axis tight;hold off;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -