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)及其指标 。
帮助记忆的个人理解,将二分模型结果分为正和反,
TPR 为 预测正向,真实正向,占所有真实正向的比例 TP/P
FPR 为 预测正向,真实反向,占所有真实反向的比例 FP/N
ROC绘制方法
- 计算所有样本的概率值score(属于正样本的概率);
- 将score从高到低排序;
- 将每个score当成阈值,计算FPR与TPR;
-
绘制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之间。
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