基于最小风险判决规则(matlab实验)

实验内容

实现最小风险判决规则的算法设计以及Matlab的实现

实验原理

采用最小错误率判决规则进行判决时没有考虑错误判决带来的风险,正是由于有判决风险的存在,仅考虑最小错误进行判决是不充分的,还要考虑判决带来的风险。

假设有c类问题,用wj表示类别,ai表示可以做出的诀别,令L(ai | W)表示X∈Wj而判决为ai的风险
假设某样本X的后验概率P(wj | X)已经确定则有:
P(W1 | X) + P(W2 | X) + … + P(Wj | X) = 1,j=1,2,…,c,且P(Wi | X)≥0

对于每一种判决ai,可以求出随机变量L(ai | wi)的条件平均风险,也叫 ”条件平均损失“ :
在这里插入图片描述
最小风险就是把样本X归属于 ”条件平均奉献最小“ 的那一种判决

实验步骤

1、给定样本X,计算各类后验概率P(wj | X),j =1,2,…,c
2、在已知风险矩阵的条件下,求各种判决的条件平均风险R(ai | X)
3、比较各种判决的条件平均风险,把样本X归属于条件平均风险最小的那一种判决

实验方法及程序实现

1、设计数据和先验概率:

 x = [-3.6589 2.1156 1.2255 2.1145 -3.256 -0.1258 -3.1472 -1.298 1.2988 1.2572];
 >> pw1 = 0.9;pw2 = 0.1;

2、计算两类的风险值:

m=numel(x);%得到期待细胞数目
R1_x = zeros(1,m);%存放把样本x判别为正常细胞所造成的整体损失
R2_x = zeros(1,m);%存放把样本x判别给异常细胞所造成的整体损失
result = zeros(1,m);%存放判决的结果
%类条件概率分布 px_w1:(-2,0.25) px_w2:(2,2)
e1 = -2;
a1 = 0.5;
e2 = 2;
a2 = 2;
%风险决策值表
r11 = 0;
r12 = 4;
r21 = 4;
r22 = 0;
%计算两类风险值
for i=1:m
    R1_x(i) = r11*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r21*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
    R2_x(i) = r12*pw1*normpdf(x(i),e1,a1)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2))+r22*pw2*normpdf(x(i),e2,a2)/(pw1*normpdf(x(i),e1,a1)+pw2*normpdf(x(i),e2,a2));
end

3、通过风险值进行判决:

for i=1:m
    if R2_x(i)>R1_x(i)
        result(i) = 0;
    else
        result(i) = 1;
    end
end
结果分析

1、对每一个样本判别进行对比:

>> m = numel(x);
>> data = zeros(2,m);
>> for i=1:m
		data(1,i) = R1_x(i);
		data(2,i) = R2_x(i);
   end
Tb = array2table(data,'RowNames',{
    
    'w1','w2'},'VariableNames',{
    
    'x1','x2','x3','x4','x5','x6','x7','x8','x9','x10'});

在这里插入图片描述

2、绘制结果的曲线图:

a = [-5:0.05:5];%取样本点画图
n = numel(a);
R1_plot = zeros(1,n);
R2_plot = zeros(1,n);
for j =1:n
    R1_plot(j) = r11*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r21*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));
    R2_plot(j) = r12*pw1*normpdf(a(j),e1,a1)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2))+r22*pw2*normpdf(a(j),e2,a2)/(pw1*normpdf(a(j),e1,a1)+pw2*normpdf(a(j),e2,a2));
end
figure(1)
hold on
plot(a,R1_plot,'b-',a,R2_plot,'g-')
for k = 1:m
    if result(k)==0
        plot(x(k),-0.1,'b-')%正常细胞用上三角表示
    else
        plot(x(k),-0.1,'go')%异常细胞用圆表示
    end
end
legend('正常细胞','异常细胞','location','best')
xlabel('细胞分类结果')
ylabel('条件风险')
title('风险判决曲线')
grid on

在这里插入图片描述

3、对每一个样本进行判决结果如下:

在这里插入图片描述

实验总结

最小风险判决规则即在考虑最小错误进行判决得条件下,考虑判决带来得风险。主要流程首先计算出样本的各类后验概率,在已知风险矩阵条件下求解各类判决条件的风险,比较各类风险后进行样本归类,本次实验采用细胞的类型判决,计算出正常细胞与异常细胞的判决风险,并进行分类判决

猜你喜欢

转载自blog.csdn.net/weixin_56260304/article/details/127538712
今日推荐