绘制ROC曲线

什么是ROC曲线

ROC曲线是什么意思,书面表述为:

ROC 曲线(接收者操作特征曲线)是一种显示分类模型在所有分类阈值下的效果的图表。”

好吧,这很不直观。其实就是一个二维曲线,横轴是FPR,纵轴是TPR:

至于TPR,FPR怎么计算:

  • 首先要明确,我们是在讨论分类问题中,讨论怎样绘制ROC曲线的,大前提是分类问题。别想太多,就当是二分类问题好了,一类是Positive,一类是Negative

  • 分类模型的预测结果,被阈值化之后,判定为TP,FP,TN,FN四种情况:

    • if Y_pred ≥ thresh and Y_gt is Positive, then TP++
    • if Y_pred ≥ thresh and Y_gt is Negative, then FP++
    • if Y_pred < thresh and Y_gt is Positive, then FN++
    • if Y_pred < thresh and Y_gt is Negative, then TN++
  • 然后TPR, FPR的定义为
  • TPR = TP / (TP + FN)      (也就是Recall)
    
    FPR = FP / (FP + TN)

    举个栗子

    假设你现在做机器学习笔试题,题目给了分类任务中的测试集标签和分类模型的预测结果,也就是给了Y_pred和Y_gt,让你手绘AUC曲线。Can you draw it?

    答案一定是Yes, I can(看一下就会了)。

    gt: [0, 1, 0, 1]. pred: [0.1, 0.35, 0.4, 0.8] 那么在阈值分别取{0.1, 0.35, 0.4, 0.8}的时候,分别判断出每个pred是TP/FP/TN/FP中的哪个,进而得出当前阈值下的TPR和FPR,也就是(FPR, TPR)这一ROC曲线图上的点;对于所有阈值都计算相应的(FPR, TPR),则得到完整的ROC曲线上的几个关键点,再连线(稍微脑补一下?)就得到完整ROC曲线。(再进一步,AUC也可以计算了,不是嘛?)

    计算过程如下:

         

得到的ROC曲线

         

好吧,这个例子其实来自于如何绘制ROC曲线

再举一个例子好了:
对于一组二元分类任务的测试集,其真实值为[0, 0, 0, 0, 1, 1, 1],模型预测为1的概率为[0.3, 0.2, 0.7, 0.5, 0.4, 0.9, 0.6],该模型在这个测试集上的ROC曲线为?(题目来源:sofasofa.io,一个有趣的机器学习社区,里面的机器学习题库http://sofasofa.io/

参考博客https://www.cnblogs.com/zjutzz/p/9315350.html

https://blog.csdn.net/XKira/article/details/70920269

另外一篇博客写的也很清晰

ROC曲线-阈值评价标准 https://blog.csdn.net/abcjennifer/article/details/7359370

部分内容如下

考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive),如果实例是负类被预测成正类,称之为假正类(False positive)。相应地,如果实例是负类被预测成负类,称之为真负类(True negative),正类被预测成负类则为假负类(false negative)。

列联表如下表所示,1代表正类,0代表负类。
(注意行是预测,列是实际,有的表是行是实际,列是预测(维基百科上),但是表里的数据都一样)

从列联表引入两个新名词。其一是真正类率(true positive rate ,TPR), 计算公式为TPR=TP/ (TP+ FN),刻画的是分类器所识别出的 正实例占所有正实例的比例。另外一个是假正类率(false positive rate, FPR),计算公式为FPR= FP / (FP + TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(True Negative Rate,TNR),也称为specificity,计算公式为TNR=TN/ (FP+ TN) = 1-FPR。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值