一、AUC是什么?
(1)文绉绉的定义
AUC=Area Under the Curve中文直译叫“曲线下面积”,AUC名字里面的Curve曲线指的就是ROC曲线,关于ROC曲线的相关知识我已经在之前的文章中详细说过了,有需要的友友可以点击下面的链接先去补充知识:【机器学习300问】46、什么是ROC曲线?
AUC就相当于这条ROC曲线下面的阴影面积,它提供了整体性能的一个量化指标。AUC值为1表示完美的分类器,而AUC值为0.5则表示分类效果跟随机猜测一样。AUC是一种不受具体分类阈值影响的模型评估指标。
(2)有趣的比喻
假如你是一个守门员,在你面前有许多足球,其中一些足球的轨迹是要射向门(正类),而其他的球不会射向球门(负类)。现在你要猜出哪些球射向球门并做出扑救。
AUC就是衡量在不同情况下你识别出射向球门球的能力,同时避免对不会射向球门的球做出反应。如果你每次都能正确判断哪些球会来射门并成功防守,而忽略那些不会射门的球,你就有了完美的防守记录(AUC = 1)。但如果你像是随机猜测一样捕捉球(就像瞎子守门员),你的平均记录就和掷硬币一样(AUC = 0.5),防守成功的几率和失败的几率是一样的。
二、AUC怎么算?
(1)对于离散的ROC曲线(非常少见)
通过将ROC曲线分割成一系列的小矩形或者梯形近似估算其面积,使用几何公式来直接计算多边形下的面积。在现实中,这种情形比较少见。
(2)对于连续的ROC曲线(实际大多如此)
使用数值积分方法如梯形法则等进行计算。具体来说,在ROC曲线上以FPR为横坐标,以TPR为纵坐标,沿着FPR由0到1定积分,积分函数本身是TPR以FPR为自变量的函数。通过这个积分过程我们实际上得到的是曲线与横轴围成的面积。
- 定积分公式:
- 定积分用于计算AUC,通常采用数值方法来求解,如梯形法则,这个方法适用于计算离散数据点下面积的情形,公式如下:
和 | 相邻两个点的 FPR 值 |
和 | 相邻两个点的 TPR 值 |
数据点的数量 |
- 哪用得着这么麻烦,直接利用已有的库就行。比如sklearn库的roc_auc_score函数。
三、AUC计算完成后该做些什么?
当然是评估模型和比较不同模型的性能啦!由于ROC曲线一般都处于y=x的上方,如果在下方,可以把分类器预测的概率变成1-p就可以得到新的分类器,这个分类器的效果肯定更好。所以AUC取值一般在0.5到1之间,AUC越接近1说明模型分类的性能越好!