混淆矩阵之 ROC-AUC曲线、PRC曲线

时间:2022-12-07 12:53:17

ROC - NUC

图片来自* https://en.wikipedia.org/wiki/Receiver_operating_characteristic
部分摘自http://blog.csdn.net/pipisorry/article/details/51788927

ROC定义

ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣。为FPR(X轴)与TPR(Y轴)画出的曲线,定义请看 混淆矩阵(Confusion matrix)及其指标
混淆矩阵之 ROC-AUC曲线、PRC曲线

帮助记忆的个人理解,将二分模型结果分为正和反,
TPR 为 预测正向,真实正向,占所有真实正向的比例 TP/P
FPR 为 预测正向,真实反向,占所有真实反向的比例 FP/N

ROC绘制方法

  1. 计算所有样本的概率值score(属于正样本的概率);
  2. 将score从高到低排序;
  3. 将每个score当成阈值,计算FPR与TPR;
  4. 绘制ROC曲线。

    当我们将threshold设置为1和0时,分别可以得到ROC曲线上的(0,0)和(1,1)两个点。将这些(FPR,TPR)对连接起来,就得到了ROC曲线。

    以下为python sklearn包的运行命令:
    待补充

NUC

NUC(Area under the curve)ROC曲线下的面积,由于ROC曲线一般都处于y=x这条直线的上方,所以AUC一般在0~1之间。

混淆矩阵之 ROC-AUC曲线、PRC曲线

AUC值越大,正确率越高。
0.90-1 = very good (A)
0.80-0.90 = good (B)
0.70-0.80 = not so good (C)
0.60-0.70 = poor (D)
0.50-0.60 = fail (F)

AUC = 1,是完美分类器,采用这个预测模型时,不管设定什么阈值都能得出完美预测。绝大多数预测的场合,不存在完美分类器。
0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值。
AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测,因此不存在AUC < 0.5的情况

PRC

PRC, precision recall curve

下面是两个场景:
1. 地震的预测
对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了;也不要预测100次对了8次漏了两次。
2. 嫌疑人定罪
基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。及时有时候放过了一些罪犯(recall低),但也是值得的。

ROC、PRC各自优势

ROC优势: 当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。
PRC优势: 但当正负样本数量差异极大时,PRC更能有效反映分类器好坏。

详细内容请参见http://blog.csdn.net/pipisorry/article/details/51788927

结论:ROC曲线相似时,可用PRC继续鉴定。两者皆使用综合考虑总没错!