通常评价一个模型好坏的方式有很多种,准确率(Accuracy)就是其中之一,但是两类数据不均衡的时候,会导致准确率看起来不低,但实际模型的效果并不好,而ROC曲线(Receiver Operating Characteristic curve)即使在两类数据不均衡的时候也能很好地描述模型效果的好坏。
混淆矩阵
![]() |
表格中,
TP:正确的预测为positive的数量
FN:错误的预测为negtive的数量
FP:错误的预测为positive的数量
TN:正确的预测为negtive的数量
各个评判指标
![]() |
![]() |
灵敏度高,表示宁可错杀一千,不可放过一个阳性。
特异度高,表示宁可漏掉一些阳性样本,也要确保阴性预测准确率。
ROC
![]() |
![]() |
![]() |
做ROC曲线就是慢慢修改cutoff大小,计算FPR和TPR大小,从而绘制ROC曲线。
![]() |
当cutoff=0.92时,大于等于0.92的被认为是1,小于0.92的被认为是0,因此,FPR=0,TPR=1/8=0.125
当cutoff=0.9时,大于等于0.9的被认为是1,小于0.9的被认为是0,因此,FPR=0,TPR=2/8=0.25
当cutoff=0.88时,大于等于0.88的被认为是1,小于0.88的被认为是0,因此,FPR=0,TPR=3/8=0.375
当cutoff=0.85时,大于等于0.85的被认为是1,小于0.85的被认为是0,因此,FPR=1/12,TPR=3/8=0.375
最终得到的ROC曲线如下图所示
![]() |
参考网址:http://mlwiki.org/index.php/ROC_Analysis?tdsourcetag=s_pctim_aiomsg