plotroc

本文介绍了一种用于绘制ROC曲线并计算AUC的方法。该方法通过将预测值排序,然后逐步计算假正例率(FPR)和真正例率(TPR),最终绘制出ROC曲线并得出AUC值。
%  predict       - 分类器对测试集的分类结果
%  ground_truth - 测试集的正确标签,这里只考虑二分类,即2和4
%  auc            - 返回ROC曲线的曲线下的面积
function auc = plotroc( decision_values, test_set_labels )
%初始点为(1.0, 1.0)
%计算出ground_truth中正样本的数目pos_num和负样本的数目neg_num

pos_num = sum(test_set_labels==1);
neg_num = sum(test_set_labels==0);

m=size(test_set_labels,1);%返回行数(测试集大小)

[pre,Index]=sort(decision_values);%从低到高排序
test_set_label=test_set_labels(Index);

x=zeros(m+1,1);
y=zeros(m+1,1);
auc=0;
x(1)=1;y(1)=1;%初始点为(1.0, 1.0)

for i=2:m
TP=sum(test_set_label(i:m)==1);FP=sum(test_set_label(i:m)==0);
x(i)=FP/neg_num;
y(i)=TP/pos_num;
auc=auc+(y(i)+y(i-1))*(x(i-1)-x(i))/2;
end;

x(m+1)=0;y(m+1)=0;
auc=auc+y(m)*x(m)/2;
figure;
plot(x,y,'k','linewidth',2);

title(['AUC=',num2str(auc)])%AUC
xlabel('false positive rate')
ylabel('true positive rate')


end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值