实验内容
实现最小风险判决规则的算法设计以及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、对每一个样本进行判决结果如下:
实验总结
最小风险判决规则即在考虑最小错误进行判决得条件下,考虑判决带来得风险。主要流程首先计算出样本的各类后验概率,在已知风险矩阵条件下求解各类判决条件的风险,比较各类风险后进行样本归类,本次实验采用细胞的类型判决,计算出正常细胞与异常细胞的判决风险,并进行分类判决