gusucode.com > ​用mushrooms数据对模式识别课程讲述的各种模式分类方法matlab源码程序 > pattern-recognition-simulation/analyse_result.m

    function [correct,error,ROC] = analyse_result(experiment_test,Result)
%分析测试结果,计算正确率,错误率,敏感度,特异度,误判率,漏判率
%输入参数:experiment_test:测试样本,第一列为标签
%          Result:测试结果,是m*1 列向量,包含分类结果
%输出参数:correct 正确率  
%         error 错误率
%         ROC 1*4 行向量  ROC(1)敏感度 ROC(2)特异度 ROC(3)误判率 ROC(4)漏判率

t_correct=0;      %正确的个数
sensitivity=0;    % 敏感度
differential=0;   %特异度
misjustice=0;     %误判率
escape_diagnose=0;%漏判率
[m n] = size(experiment_test);
%计算敏感度,特异度,误判率,漏诊率
 for j=1:m
     if experiment_test(j,1)==Result(j,1);  %统计对测试样本分类正确的个数
         t_correct=t_correct+1;
     end
      if (experiment_test(j,1)==1&Result(j,1)==1)
          sensitivity=sensitivity+1;
      else if(experiment_test(j,1)==2&Result(j,1)==2)
           differential=differential+1;
      else if(experiment_test(j,1)==2&Result(j,1)==1)
           misjustice=misjustice+1;
      else if(experiment_test(j,1)==1&Result(j,1)==2)
           escape_diagnose=escape_diagnose+1;
          end
          end
          end
      end
 end
correct=t_correct/m;%计算正确率
error=1-correct; %计算错误率
ROC(1)=sensitivity/size(find(experiment_test(:,1)==1),1);% 敏感度
ROC(2)=differential/size(find(experiment_test(:,1)==2),1); %特异度
ROC(3)=misjustice/size(find(experiment_test(:,1)==2),1);%误判率
ROC(4)=escape_diagnose/size(find(experiment_test(:,1)==1),1);%漏判率