終於找到計算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);
