ROC曲线和AUC

ROC全称Receiver Operating Curve,最早应用于二战时的雷达探测,以评价信号侦测模型的优劣。在机器学习领域,ROC曲线同样用于模型效果的评价。

ROC曲线样例如下图所示,其横坐标为假正率(FPR),纵坐标为真正率(TPR),曲线上的点对应不同阈值下的模型(FPR,TPR)。
ROC理解的难点就在于阈值的变化,能够造成FPR和TPR的变化,从而形成曲线。
当判断正负样本的阈值为极端小时,所有的样本均为正样本,此时假正(FP)样本等于负样本(N)的量,即FPR=FP/N=100%;真正(TP)样本等于正样本的量,即TPR=TP/P=100%,这就形成了曲线右上角的点(1,1)。
当判断正负样本的阈值为极端大时,所有的样本均为负样本,此时假正(FP)样本数量为0(因为没有正样本),即FPR=FP/N=0;真正(TP)样本也为0,即TPR=TP/P=0,这就形成曲线左下角的点(0,0)。
当阈值设为极端小和极端大之间时,(FPR,TPR)在(0,0)和(1,1)之间滑动,从而形成ROC曲线。

AUC全称Area Under Curve,表示ROC曲线下的面积,一般认为AUC数值越大,则模型效果越好。图形中的蓝色虚线为参考线,表示随机模型的效果,在蓝色虚线下的模型,效果逊于随机模型。



python sklearn中有专门的绘制ROC曲线的包,如下示例代码供参考。
from sklearn import metrics
import matplotlib.pyplot as plt
# y_real表示实际值(或实际类别),y_pred表示预测值(或预测概率)
fpr, tpr, thresholds = metrics.roc_curve(y_real, y_pred, pos_label=1)
roc_auc = metrics.auc(fpr, tpr)
plt.figure()
plt.plot(fpr, tpr, color='darkorange',
         lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值