一、题目:

【题目】:已知三个类别分别为W1:[0,0]T,[2,1]T,[1,0]T; W2:[-1,1]T,[2,0]T,[-2,-1]T; W3:[0,-2]T,[0,-1]T,[1,-2]T。以协方差矩阵相等和不相等两种情况,基于最小错误率的Bayes分类器进行仿真,画出三类的分界线,并判断样本[-2,2]T属于哪一类?

二、Matlab程序代码:

%【题目】:已知三个类别分别为W1:[0,0]T,[2,1]T,[1,0]T; W2:[-1,1]T,[2,0]T,[-2,-1]T; W3:[0,-2]T,[0,-1]T,[1,-2]T。
%以协方差矩阵相等和不相等两种情况,基于最小错误率的Bayes分类器进行仿真,画出三类的分界线,并判断样本[-2,2]T属于哪一类?%基于最小错误率的Bayes的MATLAB程序
%题中所给各类样本数据及观察x
clc
clear
w1=[0 0;2 1;1 0];w2=[-1,1;-2,0;-2,-1];w3=[0,-2;0,-1;1,-2];
x=[-2,2]';  %'表示向量的转置,题目中要求判断的样本x
syms x1 x2% Create symbolic scalar variables x1 and .创建符号标量变量x1和x2,syms: Symbolic Scalar
Xr=[x1,x2];Xc=[x1;x2];%Xr里面是逗号,Xc里面是分号%算出各类状态的先验概率,
samplenum= length(w1)+length(w2)+length(w3);% Length of largest array dimension最大数组维度的长度length(w1)= length(w2)= length(w3)=3
pw1=length(w1)/samplenum;% pw1 = 0.3333 求先验概率
pw2=length(w2)/samplenum;% pw2 = 0.3333 求先验概率
pw3=length(w3)/samplenum;% pw3 = 0.3333 求先验概率
%算出各类的均值,协方差,及协方差的逆矩阵. mean求平均值,var求方差,std求标准差,cov求协方差,corr与corrcoef求相关系数
u1=mean(w1)';u2=mean(w2)';u3=mean(w3)';%求均值u1=((0+2+1)/3  (0+1+0)/3)'=(1.0000 0.3333)’
D1=cov(w1);D2=cov(w2);D3=cov(w3);%求协方差
invD1=inv(D1);invD2=inv(D2);invD3=inv(D3);% 求协方差的逆矩阵%在三类协方差不相等时,分别计算观察x的gi(x) i=1,2,3;决定观察x属于的类别.
g1=-1/2*(x-u1)'*invD1*(x-u1)-1/2*log(det(D1))+log(pw1);%各类的协方差阵不相等时的判别函数式,书中公式(2-91)
g2=-1/2*(x-u2)'*invD2*(x-u2)-1/2*log(det(D2))+log(pw2); %各类的协方差阵不相等时的判别函数式,书中公式(2-91)
g3=-1/2*(x-u3)'*invD3*(x-u3)-1/2*log(det(D3))+log(pw3); %各类的协方差阵不相等时的判别函数式,书中公式(2-91)
g=[g1,g2,g3]; % 定义一个向量g, g = [-64.5228  -12.5228  -20.5228]
w=find(g==max(g)); % 确定向量A中最大值所在位置
% max(g)表示取g的最大值,maxIndex=g==max(g)表示向量g中每个元素与max(g)的值进行比较,如果相等,则向量maxIndex对应位置1;否则,置0。
% 执行以上程序后,向量maxIndex=[0,1,0]
%find(x)表示查找非零元素的线性索引,即非零元素所出的位置,例如X = [1 0 2; 0 1 1; 0 0 4]   k = find(X)   k =(1 5 7 8 9)'
fprintf('协方差不相等时,x=[-2;2]  belongs to w%d\n',w);%将多个数值和字面文本输出到屏幕。%d整数型,\n换行%求出三类相邻区域的分界线方程.
W1=-0.5*invD1;W2=-0.5*invD2;W3=-0.5*invD3;%判别函数的Wi,书中公式(2-92)
ww1=invD1*u1;ww2=invD2*u2;ww3=invD3*u3; %判别函数的wi,书中公式(2-93)
w10=-1/2*u1'*invD1*u1-1/2*log(det(D1))+log(pw1); %判别函数的wi0,书中公式(2-94)
w20=-1/2*u2'*invD2*u2-1/2*log(det(D2))+log(pw2); %判别函数的wi0,书中公式(2-94)
w30=-1/2*u3'*invD3*u3-1/2*log(det(D3))+log(pw3); %判别函数的wi0,书中公式(2-94)%W1与W2的分界线.
rear=w10-w20;%决策方程中的项wi0-wj0,定义rear为wi0-wj0
g12=Xr*round(W1-W2)*Xc+(ww1-ww2)'*Xc+rear; %决策方程,书中公式(2-95),g12 = 4*x1^2 + 22*x1 - 4*x2^2 - 12*x2 + 16。round四舍五入为最近的小数或整数
g12=simplify(g12);% 代数简化g12 =4*x1^2 + 22*x1 - 4*x2^2 - 12*x2 + 16
%Algebraic simplification 代数简化
%syms x a b c
%S = simplify(sin(x)^2 + cos(x)^2)  运行程序后 S=1
%S = simplify(exp(c*log(sqrt(a+b)))) 运行程序后 S =(a + b)^(c/2)%W1与W3的分界线.
rear=w10-w30; %决策方程中的项wi0-wj0,定义rear为wi0-wj0
g13=Xr*round(W1-W3)*Xc+(ww1-ww3)'*Xc+rear; %决策方程,书中公式(2-95),g13 = 4*x1 + 4*x2 + 4*x1*x2 + x2*(4*x1 - 4*x2) + 4。round四舍五入为最近的小数或整数
g13=simplify(g13);% 代数简化g13 =4*x1 + 4*x2 + 8*x1*x2 - 4*x2^2 + 4%W2与W3的分界线.
rear=w20-w30; %决策方程中的项wi0-wj0,定义rear为wi0-wj0
g23=Xr*round(W2-W3)*Xc+(ww2-ww3)'*Xc+rear; %决策方程,书中公式(2-95),g23 =16*x2 - 18*x1 + 4*x1*x2 - x1*(4*x1 - 4*x2) - 12 %g23 =16*x2 - 18*x1 + 8*x1*x2 - 4*x1^2 - 12。round四舍五入为最近的小数或整数
g23=simplify(g23);%代数简化g23 =16*x2 - 18*x1 + 8*x1*x2 - 4*x1^2 - 12%绘制各类数据点及分界线.
figure('name','三类协方差不相等时')%创建图窗窗口,Figure 1:三类协方差不相等时
subplot(2,2,1)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,1)2*2=4个图的第1个图
plot(w1(:,1),w1(:,2),'b+',w2(:,1),w2(:,2),'r*',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'b+'黑色加号,'r*'红色星号,'k.'黑色点
hold on%添加新绘图时保留当前绘图
set(ezplot(g12),'color','red')%设置g12线条的颜色为红色,%ezplot(fun)函数绘图
set(ezplot(g13),'color','blue')%设置g13线条的颜色为蓝色
set(ezplot(g23),'color','magenta')%设置g23线条的颜色为紫色
legend('第一类','第二类','第三类','一二类分界线','一三类分界线','二三类分界线')
title('各类间混合分界线')%第一个小图的标题subplot(2,2,2)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,2)2*2=4个图的第2个图
plot(w1(:,1),w1(:,2),'b+',w2(:,1),w2(:,2),'r*')%w1(:,1)取w1的第一列,'b+'黑色加号,'r*'红色星号
hold on%添加新绘图时保留当前绘图
set(ezplot(g12),'color','red')%设置g12线条的颜色为红色
legend('第一类','第二类','一二类分界线')%legend(label1,...,labelN)在坐标区上添加图例,'b+'黑色加号为第一类,'r*'红色星号为第二类,subplot(2,2,3)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,2)2*2=4个图的第3个图
plot(w1(:,1),w1(:,2),'b+',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'b+'黑色加号,'k.'黑色点
hold on%添加新绘图时保留当前绘图
set(ezplot(g13),'color','blue')%设置g13线条的颜色为蓝色
legend('第一类','第三类','一三类分界线')%legend(label1,...,labelN)在坐标区上添加图例,'b+'黑色加号为第一类,'k.'黑色点为第三类subplot(2,2,4)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,2)2*2=4个图的第4个图
plot(w2(:,1),w2(:,2),'r*',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'r*'红色星号,'k.'黑色点
hold on%添加新绘图时保留当前绘图
%ezplot(g23)%ezplot(fun)函数绘图
set(ezplot(g23),'color','magenta')%设置g23线条的颜色为紫色
legend('第二类','第三类','二三类分界线')%legend(label1,...,labelN)在坐标区上添加图例,'b+'黑色加号为第一类,'k.'黑色点为第三类%在三类协方差相等时,分别计算观察x的gi(x) i=1,2,3;决定观察x属于的类别.
D=D1+D2+D3;invD=inv(D);%协方差的逆
g1=(x-u1)'*invD*(x-u1);%各类的协方差阵相等时的判别函数,书中公式(2-82),此时决策规则:为了对样本x进行分类,只要计算出x到每类的均值ui的马氏(Mahalanobis)距离平方γ^2,最后把x归于γ^2最小的类别
g2=(x-u2)'*invD*(x-u2);%各类的协方差阵相等时的判别函数,书中公式(2-82),此时决策规则:为了对样本x进行分类,只要计算出x到每类的均值ui的马氏(Mahalanobis)距离平方γ^2,最后把x归于γ^2最小的类别
g3=(x-u3)'*invD*(x-u3);%各类的协方差阵相等时的判别函数,书中公式(2-82),此时决策规则:为了对样本x进行分类,只要计算出x到每类的均值ui的马氏(Mahalanobis)距离平方γ^2,最后把x归于γ^2最小的类别
g=[g1,g2,g3]; % 定义一个向量g, g =[13.4222    3.8222   21.9556]
w=find(g==min(g)); % 确定向量A中最小值所在位置,注意:各类的协方差阵不相等时w=find(g==max(g))找最大
% min(g)表示取g的最大值,minIndex=g==min(g)表示向量g中每个元素与min(g)的值进行比较,如果相等,则向量maxIndex对应位置1;否则,置0。
% 执行以上程序后,向量minIndex=[0,1,0]
%find(x)表示查找非零元素的线性索引,即非零元素所出的位置,例如X = [1 0 2; 0 1 1; 0 0 4]   k = find(X)   k =(1 5 7 8 9)'
fprintf('协方差相等时,x=[-2;2] belongs to w%d',w);%将多个数值和字面文本输出到屏幕。%d整数型,\n换行%求出三类相邻区域的分界线方程.
W12=invD*(u1-u2);W13=invD*(u1-u3);W23=invD*(u2-u3);%决策方程w,公式(2-87)
x120=1/2*(u1+u2)-(log(pw1/pw2)*(u1-u2))/((u1-u2)'*invD*(u1-u2));%决策方程x0,公式(2-88)
x130=1/2*(u1+u3)-(log(pw1/pw3)*(u1-u3))/((u1-u3)'*invD*(u1-u3))%决策方程x0,公式(2-88)
x230=1/2*(u2+u3)-(log(pw2/pw3)*(u2-u3))/((u2-u3)'*invD*(u2-u3))%决策方程x0,公式(2-88)%W1与W2的分界线.
g12=W12'*(Xc-x120);%判别函数的Wi,书中公式(2-86)w^T(x-x0)=0,g12 =2*x1 - (4*x2)/5 + 4/5
g12=simplify(g12);%代数化简,g12 =2*x1 - (4*x2)/5 + 4/5%W1与W3的分界线.
g13=W13'*(Xc-x130);%判别函数的Wi,书中公式(2-86)w^T(x-x0)=0,g13 =(4*x2)/3 - (4*x1)/15 + 16/15
g13=simplify(g13);%代数化简,g13 =(4*x2)/3 - (4*x1)/15 + 16/15%W2与W3的分界线.
g23=W23'*(Xc-x230);%判别函数的Wi,书中公式(2-86)书中公式(2-86)w^T(x-x0)=0,g23 =(32*x2)/15 - (34*x1)/15 + 4/15
g23=simplify(g23);%代数化简,g23 =(32*x2)/15 - (34*x1)/15 + 4/15%绘制各类数据点及分界线.
figure('name','三类协方差相等时')%创建图窗窗口,Figure 2:三类协方差不相等时
subplot(2,2,1)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,1)2*2=4个图的第1个图
plot(w1(:,1),w1(:,2),'b+',w2(:,1),w2(:,2),'r*',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'b+'黑色加号,'r*'红色星号
hold on%添加新绘图时保留当前绘图
set(ezplot(g12),'color','red')%设置g12线条的颜色为红色,%ezplot(fun)函数绘图
set(ezplot(g13),'color','blue')%设置g13线条的颜色为蓝色
set(ezplot(g23),'color','magenta')%设置g23线条的颜色为紫色
legend('第一类','第二类','第三类','一二类分界线','一三类分界线','二三类分界线')
title('各类间混合分界线')%第一个小图的标题subplot(2,2,2)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,1)2*2=4个图的第2个图
plot(w1(:,1),w1(:,2),'b+',w2(:,1),w2(:,2),'r*')%w1(:,1)取w1的第一列,'b+'黑色加号,'r*'红色星号
hold on%添加新绘图时保留当前绘图
set(ezplot(g12),'color','red')%设置g12线条的颜色为红色
legend('第一类','第二类','一二类分界线')subplot(2,2,3)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,1)2*2=4个图的第3个图
plot(w1(:,1),w1(:,2),'b+',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'b+'黑色加号,'k.'黑色点
hold on%添加新绘图时保留当前绘图
set(ezplot(g13),'color','blue')%设置g13线条的颜色为蓝色
legend('第一类','第三类','一三类分界线')subplot(2,2,4)%subplot(m,n,p)将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区。subplot(2,2,1)2*2=4个图的第4个图
plot(w2(:,1),w2(:,2),'r*',w3(:,1),w3(:,2),'k.')%w1(:,1)取w1的第一列,'r*'红色星号,'k.'黑色点
hold on%添加新绘图时保留当前绘图
set(ezplot(g23),'color','magenta')%设置g23线条的颜色为紫色
legend('第二类','第三类','二三类分界线')

三、运行结果:

三类协方差不相等时的分类

三类协方差相等时的分类

3.正态分布概率模型下的最小错误率贝叶斯决策MATLAB程序代码相关推荐

  1. 【ML学习笔记】17:多元正态分布下极大似然估计最小错误率贝叶斯决策

    简述多元正态分布下的最小错误率贝叶斯 如果特征的值向量服从d元正态分布,即其概率密度函数为: 即其分布可以由均值向量和对称的协方差矩阵 唯一确定. 如果认为样本的特征向量在类内服从多元正态分布: 即对 ...

  2. 模式识别:最小错误率贝叶斯决策分类

    一.引言 1.用贝叶斯决策理论分类要事先知道两个条件及要求: ①.各类的先验概率: 及特征向量的条件概率密度: 或后验概率: ②.决策分类的类别一定 2.解决的问题: 已知一定数目的样本,设计分类器, ...

  3. 最小错误率贝叶斯决策的基本思想_最小错误率贝叶斯决策

    在一般的模式识别问题中,人们往往希望尽量减少分类的错误,即目标是追求最小的错误率.其中利用概率论中贝叶斯公式得到的分类决策被称之为最小错误率贝叶斯决策. 问题引入 在某个地区中人们常对细胞中某一种物质 ...

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

    原文链接:http://blog.csdn.net/angel_yuaner/article/details/47042817 在一般的模式识别问题中,人们的目标往往是尽量减少分类的错误,追求最小的错 ...

  5. 最小错误率贝叶斯决策的基本思想_机器学习笔记—模式识别与智能计算(四)基于概率统计的贝叶斯分类器设计(贝叶斯决策)...

    系列文章: 机器学习笔记-模式识别与智能计算(一)模式识别概述 机器学习笔记-模式识别与智能计算(二)特征的选择与优化 机器学习笔记-模式识别与智能计算(三)模式相似性测度 同类文章: 机器学习笔记- ...

  6. 2.依据最小风险的贝叶斯决策对观察的结果进行分类MATLAB程序代码

    一.题目: >[题目]:假定某个局部区域细胞识别中正常P(w1)和非正常P(w2)两类先验概率分别为: 正常状态:P(w1) =0.9;异常状态:P(W2)=0.1. 现有一系列待观察的细胞,其 ...

  7. 最小错误率贝叶斯决策的基本思想_太赞了!机器学习基础核心算法:贝叶斯分类!(附西瓜书案例及代码实现)...

    Datawhale 作者:尹晓丹,Datawhale优秀学习者 寄语:首先,简单介绍了生成模型和判别模型,对条件概率.先验概率和后验概率进行了总结:其次,对朴素贝叶斯的原理及公式推导做了详细解读:再次 ...

  8. matlab最小错误率决策,利用MATLAB实现最小错误率贝叶斯判别

    利用MATLAB实现最小错误率贝叶斯判别 摘要:matlab软件平台为用户提供了强大的科学计算与可视化功能,具有简单.易用的用户环境,尤其适合矩阵数据的计算处理.根据matlab的特点,将其与模式识别 ...

  9. 错误率的计算、离散概率模型下的统计决策举例

    2.6 错误率的计算 错误率反映了分类问题固有复杂性的程度 在分类器设计出来后, 通常是以错误率大小来衡量其性能优劣 通常是以错误率大小作为比较方案的标准 P(e)=P(ω1)∫R2P(x∣ω1)dx ...

最新文章

  1. 工业软件研究框架_聚焦十四五!先进制造急先锋——工业软件
  2. [转]一篇很喜欢的知乎美文
  3. 读过的最好的epoll讲解
  4. linux重启网络服务_vm上linux虚拟机NAT模式配置
  5. 新来个技术总监:谁在用isXxx形式定义布尔类型年后不用来了
  6. ShapeNet:超实时人脸特征点检测与形状拟合开源库
  7. STM8学习笔记----普通IO口模拟串口功能
  8. 区块链app源码_区块链app商城系统开发适用于哪些企业
  9. 提交文件到svn,提示is not under version control
  10. 前牙正常覆盖是多少_深覆合千万不要矫正?用图示告诉你深覆合深覆盖的区别是什么,有什么危害...
  11. saltstack管理七之minion端备份
  12. 常见端口入侵方法剖析
  13. win10 手动设置 DNS 地址
  14. AUTOSAR-基本概念
  15. 哪些晦涩难懂的shell命令都是什么的缩写?
  16. 现有论文和作者两个实体,论文实体的属性包括题目、期刊名称、年份、期刊号;作者实体的属性包括姓名、单位、地址;一篇论文可以有多个作者,且每一位作者写过多篇论文,在每一篇论文中有作者的顺序号。请完成以下操
  17. git amend如何撤销
  18. CTFshow_萌新(密码)
  19. Android图片不规则裁剪
  20. unity技美27——优化项目内美术3D,2D等资源,详解unity打包体的潜规则与案例

热门文章

  1. Keil C51 V6.12
  2. Python爬虫|爬取喜马拉雅音频
  3. 2019年第十届蓝桥杯真题解析 | 特殊数【Python】
  4. Cesium中的儒略日JulianDate
  5. 怎么设置计算机桌面一键关机,电脑一键关机按钮创建 教你在桌面一点就自动关机...
  6. 埃默里大学计算机值得读吗,Emory的Mathematics and Computer Science「埃默里大学数学与计算机科学系」...
  7. 网站购买空间还是服务器,网站用空间还是服务器
  8. 自定义下拉刷新之仿AcFun下拉刷新
  9. 技术人的充电时刻,200分钟QA交流,尽在SDCC 2017·深圳站
  10. 20221126给Chrome浏览器安装扩展程序——猫抓