终于找到计算AUC值的方法了。。。。SVM与随机森林分类后都适用。对于SVM分类器,MATLAB有自己的自带方法plotroc方法,但是对于随机森林得到的分类模型和预测不适用,以下这个代码对于哪个都适用(只负责计算AUC值,木有画出roc曲线功能)
function [result]=AUC(test_targets,output) %计算AUC值,test_targets为原始样本标签,output为分类器得到的判为正类的概率 % 均为行或列向量 [A,I]=sort(output); M=0;N=0; for i=1:length(output) if(test_targets(i)==1) M=M+1;%正类样本数 else N=N+1; %负类样本数 end end sigma=0; for i=M+N:-1:1 if(test_targets(I(i))==1) sigma=sigma+i;%正类样本rank相加 end end result=(sigma-(M+1)*M/2)/(M*N);