机器学习与数据挖掘之ROC与AUC

参考文献:机器学习与数据挖掘参考文献


图1 分类结果混淆矩阵

很多学习器是为测试样本产生一个实值或概率预测,然后将这个预测值与一个分类阈值进行比较,若大于阈值则分为正类,否则为反类。例如,神经网络在一般情形下是对每个测试样本预测出宇哥[0.0, 1.0]之间的实值,然后将这个值与0.5进行比较,大于0.5则判为正例,否则为反例。这个实值或概率预测结果的好坏,直接决定了学习器的泛化能力。实际上,根据这个实值或概率预测结果,可将测试样本进行排序,“最可能”是正例的排在最前面,“最不可能”是正例的排在最后面。这样,分类过程就相当于在这个排序中以某个“截断点”将样本分为两部分,前一部分判作正例,后一部分则判作反例。

在不同的应用任务中,可根据任务需求来采用不同的截断点,若更重视“查准率”(又称为精确率, Precision,P=TP/(TP+FP)),则可选择排序中靠前的位置进行截断;若更重视“查全率”(又称为召回率,Recall,R=TP/(TP+FN)),则可选择靠后的位置进行截断。因此,排序本身的质量好坏,体现了综合考虑学习器在不同任务下的“期望泛化性能”的好坏,或者说,“一般情况下”泛化性能的好坏。ROC曲线则是从这个角度出发来研究学习器泛化性能的有力工具。

ROC全称是“受试者工作特征”(Receiver Operating Characteristic)曲线。根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出两个重要量的值,分别以它们为横、纵坐标作图,就得到了“RPC曲线”。ROC曲线的纵轴是“真正例率”(True Positive Rate,TPR),横轴是“假正例率”(False Positive Rate,FPR),两者分别定义为

TPR=TP/(TP+FN)

FPR=FP/(TN+FP)

显示ROC曲线的图称为“ROC图”,如图2所示。对角线对应于“随机猜测”模型,而点(0,1)对应于将所有正例排在所有反例之前的“理想模型”。

机器学习与数据挖掘之ROC与AUC_第1张图片


图2 ROC图

现实任务中通常是利用有限个测试样例来绘制ROC图,此时仅能获得有限个(真正例率,假正例率)坐标对。绘图过程:给定m+个正例和m-个反例,根据学习器预测结果对样例进行排序,然后把分类阈值设为最大,即把所有样例均预测为反例,此时真正例率和假正例率均为0,在坐标(0,0)处标记一个点。设前一个标记点坐标为(x,y),当前若为真正例,则对应标记点的坐标为(x,y+1/m+);当前若为假正例,则对应标记点的坐标为(x+1/m-,y),然后用线段连接相邻点即得。

进行学习器的比较时,若一个学习器的ROC曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者;若两个学习器的ROC曲线发生交叉,则难以一般性地断言两者孰优孰劣。此时如果一定要进行比较,则较为合理的判据是比较ROC曲线下的面积,即AUC(Area Under ROC Curve)。AUC可通过对ROC曲线下各部分的面积求和而得。

你可能感兴趣的:(机器学习/数据挖掘)