贝叶斯决策matlab模拟

简介

首先,先介绍以下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 ( x ω i ) P(x|\omega_i) 为类条件概率, P ( ω i ) P(\omega_i) 是条件 ω i \omega_i 的先验概率,最终得到的结果是 P ( ω i x ) P(\omega_i | x ) 由条件 ω i \omega_i 导致的后验概率

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

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

基于最小错误率的Bayes决策

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

由于在贝叶斯公式中,对于同一样本的全概率相同,因此后验概率最大就可以等价为分子最大
P ( x ω i ) P ( ω i ) = m a x { P ( x ω j ) P ( ω j ) } x ω i P(x|\omega_i)P(\omega_i) = max\{ P(x|\omega_j)P(\omega_j) \} \to x\in \omega_i
在二值分类中,我们可以对上式变形得到
l ( x ) = P ( x ω 1 ) P ( x ω 2 ) > P ( ω 2 ) P ( ω 1 ) x ω 1 l ( x ) = P ( x ω 1 ) P ( x ω 2 ) < P ( ω 2 ) P ( ω 1 ) x ω 2 l(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 ) l(x) 称为似然比, P ( ω 2 ) P ( ω 1 ) \frac{P(\omega_2)}{P(\omega_1)} 为似然比阈值

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

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

clear all
close all
clc

N=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:N
    if g(i)>0
        G1_pos(n_G1)=sample(i);
        G1(n_G1)=x_in_w1(i)*prior(1)/Px(i);
        n_G1=n_G1+1;
    else
        G2_pos(n_G2)=sample(i);
        G2(n_G2)=x_in_w2(i)*prior(2)/Px(i);
        n_G2=n_G2+1;
    end
end

figure
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
clc

N=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:N
    if g(i)>0
        G1_x(n_G1)=x(i);
        G1_y(n_G1)=y(i);
        n_G1=n_G1+1;
    else
        G2_x(n_G2)=x(i);
        G2_y(n_G2)=y(i);
        n_G2=n_G2+1;
    end
end

figure
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) 来定量分析这一指标

下面给出损失函数的表现形式:决策表
在这里插入图片描述
差不多就长这样,最后用矩阵表示。 R [ α j , ω i ] R[\alpha_j,\omega_i] 表示决策 α j \alpha_j 将样本归为 ω j \omega_j 时产生的代价

条件期望损失

对样本 x x 采取决策 α i \alpha_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)

期望风险

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

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

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

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

clear all
close all
clc

N=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:N
    if g(i)>0
        G1_pos(n_G1)=sample(i);
        G1(n_G1)=x_in_w1(i)*prior(1)/Px(i);
        n_G1=n_G1+1;
    else
        G2_pos(n_G2)=sample(i);
        G2(n_G2)=x_in_w2(i)*prior(2)/Px(i);
        n_G2=n_G2+1;
    end
end

figure
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')

实验结果如下

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/white_156/article/details/104611138
今日推荐