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