AUC是一种衡量机器学习模型分类性能的重要且非常常用的指标,其只能用于二分类的情况.
AUC的本质含义反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性 大于 将负例预测为正例的可能性的 概率 ( :-) 没办法这句话就是这么绕, rap~ ).
在真正接触AUC之前,还需要了解两个概念, 分别是 混淆矩阵 (confusion matrix) 和 ROC 曲线.
可以看出混淆矩阵由四个值构成:
由混淆矩阵可以计算得到ROC曲线的关键参数:TPR(真正例率) 和 FPR(假正例率).
理解到这个程度就可以接触ROC曲线了
可以从图上面看出,FPR和TPR分别是ROC曲线的横坐标和纵坐标.对于ROC曲线有四个点需要单独拎出来理解,这对理解AUC也是很有帮助的.它们分别是:
此外,对于图ROC curve中的三根曲线的理解:
如果要将上述的标准进行定量评估,就延伸得到了AUC, AUC即ROC曲线下方与坐标轴围成的面积大小
AUC更直观地反应了ROC曲线向我们表达的模型分类能力.其数值大小(越大越好)代表了模型的性能优劣.说到这里,自然也就能够明白开篇关于AUC物理意义的阐述了,重申一遍即:AUC的本质含义反映的是对于任意一对正负例样本,模型将正样本预测为正例的可能性 大于 将负例预测为正例的可能性的 概率(例如: 当AUC = 0.5, ROC曲线为黑线时, 模型将一对正负例样本中的正样本预测为正例的概率为0.5,将负样本预测为正例的概率也为0.5,等效于随机分类预测).
如何绘制ROC曲线?
绘制曲线,必不可少的就是拿到曲线上的点,也就是需要get到每个点的TPR和FPR数值.
这里借用在知乎上看到的例子啦:
Case_1:
对于像SVM这样的硬分类器,分类得到的结果都是已经标记完成的二分类数值(0/1).就长下面这个样子:
![Confusion Matrix]( https://upload-images.jianshu.io/upload_images/13777601-dce9d6d3474f6df2.png ?
Case_2:
对于逻辑回归LR, 还有常用的xgb, lgb而言,分类的预测结果都是一个分类概率值.比如长这个样子:
这种情况,看起来就一脸懵逼,因为完全没有预测好的标签. 这个时候就需要我们先将预测结果进行排序,逐步调整分类的阈值, 依次将样本划为正例,然后计算TPR和FPR的数值进行绘图.
步骤:
threshold = 0.9, 即只有第一个样本被划分为正例,此时TPR = 1/4, FPR = 0.
threshold = 0.8, 此时TPR = 2/4, FPR = 0.
threshold = 0.7, 此时TPR = 2/4, FPR = 1/4.
......
threshold = 0.1, 此时TPR = 1, FPR = 1.
最后绘图即可.
说了这么多, 最后强调一下AUC作为评价指标的优势:
由于AUC是与TPR核FPR密切相关的,而TPR和FPR分别从正例,负例的角度上去衡量了模型的分类能力(具有跟精准率和召回率一样的能在样本极端不平衡的情况下进行有效的衡量优势),因此在样本极端不平衡的情况下,AUC依然能够做出合理的评价. :-)
欢迎分享,转载请注明来源:优选云