ROC(Receiver Operating Characteristic)曲线全称是“受试者工作特征”,通常用来衡量一个二分类学习器的好坏。如果一个学习器的ROC曲线能将另一个学习器的ROC曲线完全包住,则说明该学习器的性能优于另一个学习器。
在绘制ROC曲线的时候,首先明白ROC曲线的横纵坐标分别代表的是什么。
下面介绍下混淆矩阵。在评价二分类器会经常用到的表格。
纵坐标:TPR=TP/(TP+FN)
横坐标:FPR=TP/(FP+TN)
那么上面的指标已经介绍完了,如何根据这些指标去绘制合适的ROC曲线呢:
实际上对于许多学习器在判定二分类问题时是预测出一个对于真值的范围在[0.0, 1.0]之间的概率值,而判定是否为真值则看该概率值是否大于设定的阈值(Threshold)。例如如果阈值设定为0.5则所有概率值大于0.5的均为正例,其余为反例。因此对于不同的阈值我们可以得到一系列相应的FPR和TPR,从而绘制出ROC曲线。
y_true = [0, 1, 0, 1],真实值
y_score = [0.1, 0.35, 0.4, 0.8], 预测概率值
分别取4组判定正例用的阈值:[0.1, 0.35, 0.4, 0.8],可得相应4组FPR,TPR:
FPR: [1, 0.5, 0.5, 0]
TPR: [1, 1, 0.5, 0.5]
则可以根据这四个点绘制出对应的ROC曲线了。
ROC曲线所覆盖的面积称为AUC(Area Under Curve),可以更直观的判断学习器的性能,AUC越大则性能越好。对于该例的AUC值为0.75。