终于找到计算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);