简介

首先,先介绍以下Beyas决策的基础:Beyas公式
P(ωi∣x)=P(x∣ωi)P(ωi)P(x)P(\omega_i | x ) = \frac{P(x|\omega_i)P(\omega_i)}{P(x)} P(ωi​∣x)=P(x)P(x∣ωi​)P(ωi​)​

其中P(x∣ωi)P(x|\omega_i)P(x∣ωi​)为类条件概率,P(ωi)P(\omega_i)P(ωi​)是条件ωi\omega_iωi​的先验概率,最终得到的结果是P(ωi∣x)P(\omega_i | x )P(ωi​∣x) 由条件ωi\omega_iωi​导致的后验概率

BB这么多,这公式啥意思呢?如果学过概率论的同学应该对类条件概率和先验概率并不陌生,P(ωi)P(\omega_i)P(ωi​)就是条件 或者 事件发生的概率,P(x∣ωi)P(x|\omega_i)P(x∣ωi​)就是条件概率。下面我们实例化说明一下
记ω0\omega_0ω0​为第一次十连中奖,ω1\omega_1ω1​为第一次十连保底,记xxx为再来一发中奖,那么P(ω0)P(\omega_0)P(ω0​)就是我第一次十连中奖的概率,而P(x∣ω1)P(x|\omega_1)P(x∣ω1​)就是我已经保底之后,再来一发中奖的概率。
同样在该实例化中,对于后验概率我们又怎么解释呢?比如:P(ω1∣x)P(\omega_1 | x )P(ω1​∣x) 在我又氪了一单十连中奖之后,我第一次保底的概率。这好像不太不符合认知,我们在通过观测当前事件,去推算已经发现事件的概率,通俗一点说,我们想知道过去的某一事件对现在这件事的影响有多大,而显然这是我们无法人为察觉到的,我们习惯于做出假设并验证,而不是根据结果去推测

之后,我们再根据Bayes公式去看Bayes决策:依据后验概率对x进行分类。根据上面对后验概率的解释,Bayes决策实际就是对x进行解析,推测在每个类别中概率,并将x归为可能性最大的分组中

基于最小错误率的Bayes决策

在这种衡量方式下,我们认为错误是不可接受的,但由于事件具有随机性,因此力图将分类决策的错误概率最小,数学表达为
P(ωi∣x)=max{P(ωj∣x)}→x∈ωiP(\omega_i|x)=max \{ P(\omega_j|x)\} \to x\in \omega_i P(ωi​∣x)=max{P(ωj​∣x)}→x∈ωi​

由于在贝叶斯公式中,对于同一样本的全概率相同,因此后验概率最大就可以等价为分子最大
P(x∣ωi)P(ωi)=max{P(x∣ωj)P(ωj)}→x∈ωiP(x|\omega_i)P(\omega_i) = max\{ P(x|\omega_j)P(\omega_j) \} \to x\in \omega_i P(x∣ωi​)P(ωi​)=max{P(x∣ωj​)P(ωj​)}→x∈ωi​
在二值分类中,我们可以对上式变形得到
l(x)=P(x∣ω1)P(x∣ω2)>P(ω2)P(ω1)→x∈ω1l(x)=P(x∣ω1)P(x∣ω2)<P(ω2)P(ω1)→x∈ω2l(x)=\frac{P(x|\omega_1)}{P(x|\omega_2)} > \frac{P(\omega_2)}{P(\omega_1)} \to x \in \omega_1\\l(x) = \frac{P(x|\omega_1)}{P(x|\omega_2)} < \frac{P(\omega_2)}{P(\omega_1)} \to x \in \omega_2 l(x)=P(x∣ω2​)P(x∣ω1​)​>P(ω1​)P(ω2​)​→x∈ω1​l(x)=P(x∣ω2​)P(x∣ω1​)​<P(ω1​)P(ω2​)​→x∈ω2​
这样我们的判别依据就与样本无关,而是由先验概率确定的阈值进行判断
其中l(x)l(x)l(x)称为似然比,P(ω2)P(ω1)\frac{P(\omega_2)}{P(\omega_1)}P(ω1​)P(ω2​)​为似然比阈值

此外,可以证明的是: 贝叶斯分类器在最小化分类错误率上是最优的

这里给出一个一维、服从正态分布的样本x,并根据设定模型进行基于最小错误率分类的matlab模拟程序

clear all
close all
clcN=1000;
prior=[.4 .6];sample=rand(1,N);
x_in_w1=normpdf(sample,0,1);
x_in_w2=normpdf(sample,1,0.5);
g=x_in_w1.*prior(1)-x_in_w2.*prior(2);
Px=x_in_w1.*prior(1)+x_in_w2.*prior(2);
n_G1=1;n_G2=1;
G1=[];G2=[];
G1_pos=[];G2_pos=[];
for i=1:Nif g(i)>0G1_pos(n_G1)=sample(i);G1(n_G1)=x_in_w1(i)*prior(1)/Px(i);n_G1=n_G1+1;elseG2_pos(n_G2)=sample(i);G2(n_G2)=x_in_w2(i)*prior(2)/Px(i);n_G2=n_G2+1;end
endfigure
scatter(G1_pos,G1)
grid on
hold on
scatter(G2_pos,G2)
legend('Group1','Group2')
figure
stem(sample,x_in_w1,'-g')
hold on
grid on
stem(sample,x_in_w2,'-r')
legend('Group1','Group2')

结果图像1是在分类组中x的后验概率:
可以看到x大约在0.25左右产生分界,由于一维数据,判决函数的分界面就是g(x)=0,所以没有给出图像

结果图像2为 条件下正态分布曲线

我们可以看到,在这里两类概率交点并不是实际分类分界点,当前仅当显眼概率相同时,上述两点重合


下面给出二维数据(x,y)的Beyas决策:
这里为了省事所以x,y是iid(独立同分布)的,所以就可以把联合pdf(概率密度)改为边缘pdf的乘积

clear all
close all
clcN=100;
prior=[.6 .4];% x,y~iid
x=rand(1,N);
y=rand(1,N);
% 在不同类别下条件概率
x_in_w1=normpdf(x,0,1);
x_in_w2=normpdf(x,1,0.5);
y_in_w1=normpdf(y,-1,1);
y_in_w2=normpdf(y,1.5,1);
% 由于iid,有P(x,y|wi)=P(x|wi)P(y|wi)
g=zeros(1,N);
g=x_in_w1.*y_in_w1*prior(1)-x_in_w2.*y_in_w2*prior(2);
G1_x=[];G1_y1=[];
G2_x=[];G2_y=[];
n_G1=1;n_G2=1;
for i=1:Nif g(i)>0G1_x(n_G1)=x(i);G1_y(n_G1)=y(i);n_G1=n_G1+1;elseG2_x(n_G2)=x(i);G2_y(n_G2)=y(i);n_G2=n_G2+1;end
endfigure
scatter(G1_x,G1_y)
grid on
hold on
scatter(G2_x,G2_y)
legend('Group1','Group2')

这里我们就可以看到明显分界面

这里我调的N比较下,有兴趣可以再调整N的大小,分界面将越来越明显。也可用再加上样本对应的后验概率做3维图,可以更清楚的看到超平面

基于最小风险的贝叶斯决策

在这一决策衡量中,我们认为错误是可以接收,并且出现错误会产生不同代价,我们要求此类决策的代价最低

这也就意味着不同类别的误判有其自己的权重系数,是否发生误判不再是最重要的决策指标,做出这一判断后,误判造成的损失大小是决策的重要指标

为了衡量某一决策所带来的损失,我们引入损失函数λ(αi,ωj)\lambda(\alpha_i,\omega_j)λ(αi​,ωj​)来定量分析这一指标

下面给出损失函数的表现形式:决策表

差不多就长这样,最后用矩阵表示。R[αj,ωi]R[\alpha_j,\omega_i]R[αj​,ωi​]表示决策αj\alpha_jαj​将样本归为ωj\omega_jωj​时产生的代价

条件期望损失

对样本xxx采取决策αi\alpha_iαi​时的损失加权平均值,简而言之就是该决策下误判的概率的加权系数
R(αi∣x)=E[λ(αi,ωj)]=∑λ(αi,ωj)P(ωj∣x)R(\alpha_i|x) = E[\lambda(\alpha_i,\omega_j)]=\sum \lambda(\alpha_i,\omega_j)P(\omega_j|x) R(αi​∣x)=E[λ(αi​,ωj​)]=∑λ(αi​,ωj​)P(ωj​∣x)

期望风险

对于所有可能的样本xxx,其对应决策所带来风险的统计平均
R=∫R(α(x)∣x)P(x)dxR=\int R(\alpha(x)|x)P(x)dx R=∫R(α(x)∣x)P(x)dx
其中α(x)\alpha(x)α(x)表示对于样本xxx做出的决策所带来的风险系数

可以预见的是:在采取每一个决策时都能保证风险最小,那么对所有xxx决策时,必然保证期望风险最小

基于最小风险的贝叶斯决策的核心就是 决策风险最小
基于上述对损失函数的介绍,我们可以得出该条件下决策规则
R(αi∣x)=min{R(αjx)}→α=αiR(\alpha_i|x)=min\{ R(\alpha_jx) \} \to \alpha=\alpha_i R(αi​∣x)=min{R(αj​x)}→α=αi​

下面给一个似懂非懂的示例程序

clear all
close all
clcN=500;
prior=[.4 .6];
lambda = [0 3;4 0];
sample=rand(1,N);
x_in_w1=normpdf(sample,0,1);
x_in_w2=normpdf(sample,1,0.5);
Px=x_in_w1.*prior(1)+x_in_w2.*prior(2);
L1=x_in_w2.*prior(2)./Px*lambda(1,2);
L2=x_in_w1.*prior(1)./Px*lambda(2,1);
g=L1-L2;
n_G1=1;n_G2=1;
G1=[];G2=[];
G1_pos=[];G2_pos=[];
for i=1:Nif g(i)>0G1_pos(n_G1)=sample(i);G1(n_G1)=x_in_w1(i)*prior(1)/Px(i);n_G1=n_G1+1;elseG2_pos(n_G2)=sample(i);G2(n_G2)=x_in_w2(i)*prior(2)/Px(i);n_G2=n_G2+1;end
endfigure
scatter(G1_pos,G1)
grid on
hold on
scatter(G2_pos,G2)
legend('Group1','Group2')
figure
stem(sample,x_in_w1,'-g')
hold on
grid on
stem(sample,x_in_w2,'-r')
legend('Group1','Group2')

实验结果如下

贝叶斯决策matlab模拟相关推荐

  1. MATLAB中如何让分度值小点,实验6 干涉的matlab模拟.doc

    实验6 干涉的matlab模拟.doc MATLAB在光信息处理中的应用课程上机实验(三峡大学2013年)实验6干涉的MATLAB模拟一.实验目的掌握双缝干涉.牛顿环的MATLAB模拟.二.实验内容1 ...

  2. matlab模拟简单孔径衍射图样,夫琅和费衍射实验文献综述

    夫琅和费衍射就是光源和观察幕离障碍物(孔或屏)均为无穷远的衍射现象,又称远场衍射,在实际操作中,可通过一个凸透镜,将无穷远处的衍射图样移至凸透镜的像方焦面上观察.可在观察幕中央看到一条特别明亮的亮条纹 ...

  3. 加加速度matlab,关于加加速度的若干机械运动分析及MATLAB模拟

    收稿日期:2004 - 04 - 06 基金项目:遵义师范学院科研基金资助项目(2003012) 作者简介:董水金(1946 -) ,男 ,江苏无锡人 ,遵义师范学院物理系副教授 ,主要从事电子技术和 ...

  4. matlab偶极矩电场强度分布图_课程设计用MATLAB模拟偶极子的电场分布.doc

    课程设计用MATLAB模拟偶极子的电场分布 燕山大学 课 程 设 计 说 明 书 题目: 用MATLAB模拟偶极子的电场分布 学院(系): 年级专业: 学 号: 学生姓名: 指导教师: 教师职称: 燕 ...

  5. MATLAB模拟导热过程,一维热传导MATLAB模拟.doc

    PAGE 昆 明 学 院 2015 届毕业设计(论文) 设计(论文)题目 一维热传导问题的数值解法及其MATLAB模拟 子课题题目 无 姓 名 伍有超 学 号 201117030225 所 属 系 物 ...

  6. 布丰投针java实现,MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  7. 基于Matlab模拟哈特曼波前探测器

    哈特曼波前探测器(Shack-Hartmann Wavefront Sensor, SHWFS)[1]用于测量波前像差,本文介绍如何用Matlab模拟SHWFS工作过程,即从像差中获得光点阵图像.计算 ...

  8. MATLAB模拟陀螺仪的运动轨迹(附完整代码)

    本文讲述了陀螺仪运动轨迹的分析过程,并且通过MATLAB进行仿真. 顺时针旋转 MATLAB陀螺仪运动轨迹仿真(正转) 逆时针旋转 MATLAB陀螺仪运动轨迹仿真(反转) 第一步:建立坐标系 假设陀螺 ...

  9. matlab磁铁模拟,用matlab 模拟环形磁铁的磁场分布

    <用matlab 模拟环形磁铁的磁场分布>由会员分享,可在线阅读,更多相关<用matlab 模拟环形磁铁的磁场分布(10页珍藏版)>请在人人文库网上搜索. 1.MATLAB模拟 ...

  10. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

最新文章

  1. function_core.php is missing下载,discuz中 function_core.php中的dmkdir有死环bug
  2. sklear多项式回归
  3. 简单的多线程实例下载(供初学者下载学习)
  4. IT程序人生:学会写程序能从事哪些技术岗位?
  5. JavaScript Array 对象(length)方法 (contact、push,pop,join,map、reverse、slice、sort)
  6. UIScrollView无法滚动
  7. C++入门系列博客二 C++ 控制流
  8. oracle varchar 不等于,为什么Oracle的varchar排序顺序与varchar比较的行为不匹配?
  9. 西门子plc编程软件step 7 microwin smart下载指南
  10. 关于小凡模拟器设置完后找不到所要配置文件的问题
  11. 数值分析·学习 | 平方根法和追赶法matlab实现
  12. 无线传感器网络中低功耗MAC协议—T-MAC
  13. 本土化Linux系统,科学网—linux本地化进行lefse分析 - 林国鹏的博文
  14. 报表工具(报表设计器)使用的开发历程
  15. python编写函数判断奇偶数_python判断奇数
  16. 关于linux下UART串口编程的困惑
  17. P1931 套利-SPFA最长路与环的判断
  18. linux cli运行脚本,AWS学习笔记(四)--CLI创建EC2时执行脚本
  19. 2021年高处安装、维护、拆除考试试卷及高处安装、维护、拆除证考试
  20. 诺基亚A7Android,诺基亚四款新机齐曝光 你最期待哪一款?

热门文章

  1. 猿创征文|【FreeSwitch开发实践】使用sipp对FreeSwitch进行压力测试
  2. c语言中的局部变量和全局变量
  3. R语言拟合ARIMA模型
  4. ABB机器人DSQC406 3HAC036301-00104伺服驱动器故障报警维修
  5. Android系统网络架构
  6. 【OpenCV】 码书(CodeBook)基本原理介绍
  7. Keil5各个版本的下载地址
  8. java物流专线快运系统源码TMS
  9. OA集成新标杆 10oa系统集成能力不容小觑
  10. Django思维导图-模板