欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

贝叶斯决策(习题)代码演示

程序员文章站 2022-05-20 19:36:53
...

一、 题目

假定某个局部区域细胞识别中正常P(ω1)和非正常P(ω2)两类先验概率分别为:
正常状态: P(ω1) =0.9;
异常状态: P(ω2) =0.1。
现有一系列待观察的细胞,其观察值为:
-2.67 -3.55 -1.24 -0.98 -0.79 -2.85 -2.76 -3.73 -3.54 -2.27 -3.45 -3.08 -1.58 -1.49 -0.74 -0.42 -1.12 4.25 -3.99 2.88 -0.98 0.79 1.19 3.07
两类的类条件概率符合正态分布,分别为
p(x|ω1)=(-2,1.5),
p(x|ω2)=(2,2)。
风险决策表为:
λ12=7, λ21=2,
λ11=λ22=0。
1) 依据最小错误率的贝叶斯决策对观察的结果进行分类。
2) 依据最小风险贝叶斯决策对观察的结果进行分类。

二、 代码演示

1.最小错误率的贝叶斯决策

clc
clear
%导入数据
x = [-2.67 -3.55 -1.24 -0.98 -0.79 -2.85 -2.76 -3.73 -3.54 -2.27 -3.45 -3.08 
    -1.58 -1.49 -0.74 -0.42 -1.12 4.25 -3.99 2.88 -0.98 0.79 1.19 3.07] ;

pxw1 = normpdf(x,-2,1.5);%计算每个数据在第一类的类条件概率 
pxw2 = normpdf(x,2,2); %计算每个数据在第二类的类条件概率

pw1=0.9;   %先验概率
pw2=0.1;
px=(pxw1*pw1+pxw2*pw2);  %全概率

%计算数据属于第一,二类的后验概率(.避免pw强制转换带来的错误)
pw1x=pxw1*pw1./px;  
pw2x=1-pw1x;

%判断哪个一个后验概论较大
R=zeros(1,24);    %建立初始分类矩阵
for i=1:24
    %如果第i个数据属于第一类的后验概率大于第二类 
    if pw1x(i)>pw2x(i) 
        R(i)=1; %该数据属于第一类,分类矩阵中该数据所对应的位置置为1  
    else
        R(i)=2;
    end  
        i=i+1;
end

display(' 基 于 最 小 错 误 率 的 贝 叶 斯 分 类 结 果 :');  
display('1表示该点属于第一类,2表示该点属于第二类 ');  
 R   %显示分类矩阵,其中1表示第一类,2表示第二类

贝叶斯决策(习题)代码演示
2.最小风险贝叶斯决策

clc
clear
%导入数据
x = [-2.67 -3.55 -1.24 -0.98 -0.79 -2.85 -2.76 -3.73 -3.54 -2.27 -3.45 -3.08 
    -1.58 -1.49 -0.74 -0.42 -1.12 4.25 -3.99 2.88 -0.98 0.79 1.19 3.07] ;

pxw1 = normpdf(x,-2,1.5); %计算每个数据在第一类的类条件概率 
pxw2 = normpdf(x,2,2); %计算每个数据在第二类的类条件概率 
pw1=0.9;
pw2=0.1;
px=(pxw1*pw1+pxw2*pw2);  %全概率
pw1x=pxw1*pw1./px;  %计算数据属于第一类的后验概率
pw2x=1-pw1x; %计算数据属于第二类的后验概率

%风险决策表
loss11=0;loss12=7;   
loss21=2;loss22=0; 

R1=loss11*pw1x+loss12*pw2x;  %属于第一类的条件风险  
R2=loss21*pw1x+loss22*pw2x ;   %属于第二类的条件风险

Y=zeros(1,24);    %建立初始分类矩阵
for i=1:24
    if R1(i)<R2(i)
         Y(i)=1;
    else
         Y(i)=2;
     end
end
 display(' 基 于 最 小 风险的 贝 叶 斯 分 类 结 果 :'); 
 display('1表示该点属于第一类,2表示该点属于第二类');  
Y    %显示分类矩阵,其中1表示第一类,2表示第二类

贝叶斯决策(习题)代码演示

相关标签: 模式识别