模式识别——统计决策方法——最小错误率贝叶斯决策

模式识别——统计决策方法——最小错误率贝叶斯决策

内容参考《模式识别》张学工

引言

问题背景

假定我手单握着一枚硬币,让你着是多少钱的硬币,这其实就可以看作一个分类决策的
问题:你需要从各种回能的硬币中作出一个决策。如果我告诉你这枚硬币只可能是一角或
者五角,这就是一个两类的分类问题。

数学问题

把硬币的重量仍记为x,与上面所述的决策过程类似,现在应该考查在已知这枚硬币重量为x情况下硬币属于各类的概率,对两类硬币分别记作 P ( w 1 ∣ x ) 和 P ( w 2 ∣ x ) P(w_1|x)和P(w_2|x) P(w1x)P(w2x),这种概率称作后验概率:这时的决策规则应该是
如果 P ( w 1 ∣ x ) > P ( w 2 ∣ x ) ,则 x ∈ w 1 ;反之 x ∈ w 2 如果P(w_1|x)>P(w_2|x),则x\in{w_1};反之x\in{w_2} 如果P(w1x)>P(w2x),则xw1;反之xw2
根据概率论中的贝叶斯公式,有
P ( w 1 ∣ x ) = p ( x , w 1 ) p ( x ) = p ( x ∣ w 1 ) P ( w 1 ) p ( x ) , i = 1 , 2 P(w_1|x)=\frac{p(x,w_1)}{p(x)}=\frac{p(x|w_1)P(w_1)}{p(x)},i=1,2 P(w1x)=p(x)p(x,w1)=p(x)p(xw1)P(w1),i=1,2
其中, P ( w 1 ) P(w_1) P(w1)是先验概率; p ( x , w 1 ) p(x,w_1) p(x,w1)是x与 w 1 w_1 w1的联合概率密度;p(x)是两类所有硬币重量的概率密度,称作总体密度: p ( x ∣ w 1 ) p(x|w_1) p(xw1)是第i类硬币重量的概率密度,称为类条件密度。这样,后验概率就转换成先验概率与类条件密度的乘积,再用总体密度进行归一化

若对于前验概率,后验概率等概念不是很理解的,可以去参考https://zhuanlan.zhihu.com/p/38567891

最小错误率贝叶斯决策

最小错误率决策

正如在前面例子中看到的,在一般的模式识别问题中,人们往往希望尽量减少分类
的错误,即目标是追求最小错误率。从最小错误率的要求出发,利用概率论中的贝叶斯公式,就能得出使错误率最小的分类决策,称之为最小错误率贝叶斯决策。
m i n P ( e ) = ∫ P ( e ∣ x ) p ( x ) d x minP(e)=\int{P(e|x)p(x)dx} minP(e)=P(ex)p(x)dx
其中 P ( e ∣ x ) P(e|x) P(ex)是对单个样本x的决策总体错误率,包括将正类x决策为负类,将负类x决策为正类,而 p ( x ) p(x) p(x)则是x的分布概率,将这两个式子相乘积分得到就是所有样本的平均错误率。也就是我们要最小化的目标。

因为
P ( e ∣ x ) = P ( w 1 ∣ x ) , 决策 x ∈ w 2 = 1 − P ( w 2 ∣ x ) , 决策 x ∈ w 2 此处的 P ( w 2 ∣ x ) 为我们所求的后验概率 \begin{aligned} P(e|x)&=P(w_1|x),决策x\in{w_2}\\ &=1-P(w_2|x),决策x\in{w_2}\\ &此处的P(w_2|x)为我们所求的后验概率 \end{aligned} P(ex)=P(w1x),决策xw2=1P(w2x),决策xw2此处的P(w2x)为我们所求的后验概率
对于 P ( e ∣ x ) = P ( w 2 ∣ x ) , 决策 x ∈ w 1 P(e|x)=P(w_2|x),决策x\in{w_1} P(ex)=P(w2x),决策xw1同理,因此最小化错误率可以转化为最大化后验概率

最大化后验概率决策

决策规则变为
如果 P ( w 1 ∣ x ) > P ( w 2 ∣ x ) ,则 x ∈ w 1 ;反之 , x ∈ w 2 其中后验概率为 P ( w 1 ∣ x ) = p ( x ∣ w 1 ) P ( w 1 ) p ( x ) = P ( x ∣ w 1 ) p ( x ) ∑ i = 1 2 p ( x ∣ w i ) P ( w i ) 如果P(w_1|x)>P(w_2|x),则x\in{w_1};反之,x\in{w_2}\\ 其中后验概率为\\ P(w_1|x)=\frac{p(x|w_1)P(w_1)}{p(x)}=\frac{P(x|w_1)p(x)}{\sum_{i=1}^{2}{p(x|w_i)P(w_i)}} 如果P(w1x)>P(w2x),则xw1;反之,xw2其中后验概率为P(w1x)=p(x)p(xw1)P(w1)=i=12p(xwi)P(wi)P(xw1)p(x)
如上式所述,两类分母相同,都是x的总体分布概率,因此要找到最大后验概率只需比较分子大小即可

比较方式1:类条件密度与前验概率乘积

谁最大选谁
若 p ( x ∣ w i ) P ( w i ) = m a x i = 1 , 2 p ( x ∣ w i ) P ( w i ) , 则 x ∈ w i 若p(x|w_i)P(w_i)=max_{i=1,2}p(x|w_i)P(w_i),则x\in{w_i} p(xwi)P(wi)=maxi=1,2p(xwi)P(wi),xwi

比较方式2:比较似然比(类条件密度之比)阈值

若 l ( x ) = p ( x ∣ w 1 ) p ( x ∣ w 2 ) { > P ( w 2 ) P ( w 1 ) 则 x ∈ w 1 < P ( w 2 ) P ( w 1 ) 则 x ∈ w 2 若l(x)=\frac{p(x|w_1)}{p(x|w_2)} \begin{cases} {>\frac{P(w_2)}{P(w_1)}} &\text{$则x\in{w_1}$}\\ {<\frac{P(w_2)}{P(w_1)}} &\text{$则x\in{w_2}$} \end{cases} l(x)=p(xw2)p(xw1){>P(w1)P(w2)<P(w1)P(w2)xw1xw2

对似然概念不熟悉的同学可以参考https://blog.csdn.net/weixin_44731847/article/details/127337792

比较方式3:比较似然比阈值的对数形式

h ( x ) = − l n [ l ( x ) ] = − l n p ( x ∣ w 1 ) + l n p ( x ∣ w 2 ) h(x)=-ln[l(x)]=-lnp(x|w_1)+lnp(x|w_2) h(x)=ln[l(x)]=lnp(xw1)+lnp(xw2)

决策规则变为
若 h ( x ) { > l n P ( w 1 ) P ( w 2 ) 则 x ∈ w 1 < l n P ( w 1 ) P ( w 2 ) 则 x ∈ w 2 若h(x) \begin{cases} {>ln\frac{P(w_1)}{P(w_2)}} &\text{$则x\in{w_1}$}\\ {<ln\frac{P(w_1)}{P(w_2)}} &\text{$则x\in{w_2}$} \end{cases} h(x){>lnP(w2)P(w1)<lnP(w2)P(w1)xw1xw2

错误率的进一步理解

利用贝叶斯公式,我们可以通过在不同类别下观测x,将类别的先验概率 P ( w i ) P(w_i) P(wi)转换为后验概率 P ( w i ∣ x ) P(w_i|x) P(wix)

image-20230930001816087

​ 从图2-2可以看到,这种决策实际的分界线是图中的虚线位置,如果样本x落在分界线左侧则归为第一类,落在右侧则归为第二类。这一分界线称作决策边界或分类线,在多维情况下称作决策面或分类面,它把特征空间划分成属于各类的区域。
​ 我们来分析一下错误率。决策边界把x轴分割成两个区域,分别称为第一类和第二类的决策区域 R 1 和 R 2 \mathscr{R_1和R_2} R1R2 R 1 \mathscr{R_1} R1 ( − ∞ , t ) (-\infty,t) (,t) R 2 \mathscr{R_2} R2 ( t , ∞ ) (t, \infty) (t,)。样本在 R 1 \mathscr{R_1} R1中但属于第二类的概率和样本在 R 2 \mathscr{R_2} R2中但属于第一类的概率就是出现错误的概率,再考虑到样本自身的分布后就是平均错误率
P ( e ) = ∫ − ∞ t P ( w 2 ∣ x ) p ( x ) d x + ∫ t ∞ P ( w 1 ∣ x ) p ( x ) d x 单个样本的后验概率 ∗ 样本总体分布,再积分 = ∫ − ∞ t p ( x ∣ w 2 ) P ( w 2 ) d x + ∫ t ∞ p ( x ∣ w 1 ) P ( w 1 ) d x 每个类别观测 x 的似然度 ∗ 每个类别的先验概率,再积分 \begin{aligned} P(e)&=\int_{-\infty}^{t}{P(w_2|x)p(x)dx}+\int_{t}^{\infty}{P(w_1|x)p(x)dx}\\ &单个样本的后验概率*样本总体分布,再积分\\ &=\int_{-\infty}^{t}{p(x|w_2)P(w_2)dx}+\int_{t}^{\infty}{p(x|w_1)P(w_1)dx}\\ &每个类别观测x的似然度*每个类别的先验概率,再积分 \end{aligned} P(e)=tP(w2x)p(x)dx+tP(w1x)p(x)dx单个样本的后验概率样本总体分布,再积分=tp(xw2)P(w2)dx+tp(xw1)P(w1)dx每个类别观测x的似然度每个类别的先验概率,再积分
其中
P 1 ( e ) = ∫ R 2 p ( x ∣ w 1 ) d x P_1(e)=\int_{\mathscr{R2}}{p(x|w_1)dx} P1(e)=R2p(xw1)dx
是把第一类样本决策为第二类的错误率,称为第一类错误率
P 2 ( e ) = ∫ R 1 p ( x ∣ w 2 ) d x P_2(e)=\int_{\mathscr{R1}}{p(x|w_2)dx} P2(e)=R1p(xw2)dx
是把第二类样本决策为第一类的错误率,称为第二类错误率

两类错误率用先验概率加权求和就是总的平均错误率

课本例题

假设在某个局部地区细胞识别中正常 ( w 1 ) (w_1) (w1)和异常 ( w 2 ) (w_2) (w2)两类的先验概率分别为
正常状态 P ( w 1 ) = 0.9 P(w_1)=0.9 P(w1)=0.9异常状态 P ( w 2 ) = 0.1 P(w_2)=0.1 P(w2)=0.1
现有一待识别的细胞,其观察值为x,从类条件概率密度曲线上分别查得
p ( x ∣ w 1 ) = 0.2 , p ( x ∣ w 2 ) = 0.4 p(x|w_1)=0.2, p(x|w_2)=0.4 p(xw1)=0.2,p(xw2)=0.4
试对这细胞了进行分类

比较后验概率(x的总体分布对于两个类别而言相等)
P ( w 1 ∣ x ) → p ( x ∣ w 1 ) P ( w 1 ) = 0.2 × 0.9 = 0.18 P ( w 2 ∣ x ) → p ( x ∣ w 2 ) P ( w 2 ) = 0.4 × 0.1 = 0.04 \begin{aligned} P(w_1|x)&\to{p(x|w_1)P(w_1)}\\ &=0.2\times0.9=0.18\\ P(w_2|x)&\to{p(x|w_2)P(w_2)}\\ &=0.4\times0.1=0.04 \end{aligned} P(w1x)P(w2x)p(xw1)P(w1)=0.2×0.9=0.18p(xw2)P(w2)=0.4×0.1=0.04
0.18>0.04,所以x属于正常类

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最小错误率叶斯决策方法是一种常见的分类方法,主要思想是将输入向量分配到使总体错误率最小的类别中。在MATLAB中实现该方法可以遵循以下步骤: 1.准备数据集,将数据集分为训练集和测试集。 2.对于每个类别,计算先验概率,并计算出每个特征在每个类别中的条件概率。 3.使用测试集中的输入向量,计算出每个类别的后验概率。 4.根据后验概率将测试向量分配到最有可能的类别中。 5.计算分类错误率。 下面是一个简单的MATLAB代码示例,假设数据集包含两个类别和两个特征: ```matlab % 准备数据集 train_data = [1 2; 2 3; 3 4; 4 5; 5 6; 6 7; 7 8; 8 9]; train_labels = [1; 1; 1; 1; 2; 2; 2; 2]; test_data = [1.5 2.5; 3.5 4.5; 5.5 6.5]; test_labels = [1; 1; 2]; % 计算先验概率和条件概率 num_classes = 2; num_features = 2; prior_probs = zeros(num_classes, 1); cond_probs = zeros(num_features, num_classes); for i = 1:num_classes prior_probs(i) = sum(train_labels == i) / length(train_labels); for j = 1:num_features cond_probs(j, i) = mean(train_data(train_labels == i, j)); end end % 计算后验概率和最小错误率叶斯决策 num_tests = size(test_data, 1); post_probs = zeros(num_tests, num_classes); for i = 1:num_tests for j = 1:num_classes post_probs(i, j) = prod(normpdf(test_data(i, :), cond_probs(:, j)', 1)) * prior_probs(j); end [~, pred_labels(i)] = max(post_probs(i, :)); end % 计算分类错误率 accuracy = sum(pred_labels' == test_labels) / length(test_labels); error_rate = 1 - accuracy; disp(['错误率为: ' num2str(error_rate)]); ``` 注意,在上述代码中,我们使用normpdf函数计算高斯分布的概率密度函数,其中第一个参数是输入向量,第二个参数是均值向量,第三个参数是方差。如果特征之间相关性很强,则可以使用协方差矩阵来表示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值