AUC值计算(matlab)


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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM