干货 | 一文完全理解AUC-ROC曲线

来源:https://towardsdatascience.com/understanding-auc-roc-curve-68b2303cc9c5

翻译:石头

干货 | 一文完全理解AUC-ROC曲线_第1张图片

机器学习模型的性能测量是一项必不可少的工作,因此,当涉及到分类问题时,我们可以考虑用AUC-ROC曲线 。当我们需要检查或可视化多分类问题的性能时,我们使用ROC曲线下的面积(AUC),它是检验任何分类模型性能最重要的评估指标之一。

本文旨在回答以下问题:

1. 什么是AUC-ROC曲线 ?

2. 定义AUC和ROC曲线中使用的术语

3. 如何推测分类模型的性能 ?

4. 灵敏度、特异度、FPR与阈值的关系

5. 如何将AUC-ROC曲线用于多分类模型

1. 什么是AUC-ROC曲线

AUC-ROC曲线是在不同阈值设置的条件下,分类问题的性能度量。ROC的含义为概率曲线,AUC的含义为正负类可正确分类的程度。它告诉模型能够在多大程度上区分类,AUC越高,模型越能预测0为0和1为1。类比疾病诊断模型,若AUC越高,模型对有疾病和无疾病的区分就越好。

ROC曲线由TPR与FPR作图,其中TPR是y轴,FPR是x轴。如下图:

干货 | 一文完全理解AUC-ROC曲线_第2张图片

2. AUC-ROC曲线的术语定义

真阳率(TPR)/召回率(Recall)/敏感度(Sensitivity):

特异度(Specificity)

假阳率(FPR)

3. 如何推测分类模型的性能

一个优秀的模型AUC接近于1,这意味着它具有良好的可分性。一个差模型的AUC接近于0,意味着它的可分性最差,意味着模型预测0是1,1是0。当AUC为0.5时,表示模型没有任何的分类能力,意味这随机给出分类结果。

让我们来解释以下上面的陈述。

我们知道,ROC是概率曲线,我们画出这些概率的分布,

备注:红色分布曲线为正类(有疾病者),绿色分布曲线为负类(无疾病者)。

干货 | 一文完全理解AUC-ROC曲线_第3张图片

如上图为正类和负类的分布,我们根据ROC曲线的定义,以阈值为1向0移动,得到相应的TPR和FPR,因此我们根据上图可画出ROC曲线,ROC曲线下的面积等于1,即AUC=1。

ROC曲线图如下:

干货 | 一文完全理解AUC-ROC曲线_第4张图片

同理,我们根据下图的正负类分布画出ROC曲线,AUC = 0.7

干货 | 一文完全理解AUC-ROC曲线_第5张图片

当正负类的分布完全相同时,即模型的分类结果是随机给出的,即AUC=0.5,如下图的正负类分布和ROC曲线:

干货 | 一文完全理解AUC-ROC曲线_第6张图片

AUC=0.5时,模型没有区分正类和负类的能力,这是最糟糕的情况。

当AUC=0时,模型完全预测错误,即负类预测为正类,正类预测为负类。

4. 敏感度(Sensitivity)、特异度(Specificity)、FPR与阈值(Threshold)的关系

敏感度和特异度成反比,当我们增加敏感度时,特异度下降,反之亦然。

解释:当我们降低阈值时,我们的预测结果会得到更多的正值,从而增加了敏感度,降低了特异度。

同样地,当我们增加阈值时,我们的预测结果会得到更多的负值,从而增加了特异度,降低了灵敏度。

正如我们所知道的,FPR = 1 - 特异度,所以当我们增加TPR时,FPR也会增加,反之亦然。

5. 如何将AUC-ROC曲线用于多分类模型

在多分类模型中,我们可以用一种方法绘制N个类别的AUC-ROC曲线。举个例子,如果你有3个类别,X,Y,Z。你会绘制出3个ROC曲线,一个ROC曲线代表X,对应Y和Z,一个ROC曲线达标Y,对应X和Z,一个ROC曲线代表Z,对应Y和X。

推荐阅读

520 页机器学习笔记!图文并茂可能更适合你,文末附下载方法

李航老师《统计学习方法》(第2版)课件分享,文末附下载

Github | 吴恩达新书《Machine Learning Yearning》完整中文版开源

经典好书 | 141页的《Deep Learning with PyTorch》开源书籍

400页《TensorFlow 2.0 深度学习算法实战》中文版教材免费下载

欢迎扫码关注:

干货 | 一文完全理解AUC-ROC曲线_第7张图片

你可能感兴趣的:(干货 | 一文完全理解AUC-ROC曲线)