你真的搞懂了ROC和AUC吗?

文摘   2024-10-23 05:56   德国  

基本介绍

ROC(Receiver Operating Characteristic)和 AUC(Area Under Curve)是用于评估二分类模型性能的可视化工具。它们可以帮助我们选择合适的分类阈值,并提供模型在不同阈值下的性能对比。这些工具可以应用于多种分类算法,比如逻辑回归、决策树、随机森林等。本次讲解将基于逻辑回归的示例。

逻辑回归与分类阈值

在逻辑回归模型中,输出的是样本属于某类别的概率。通常我们通过设定一个阈值来决定如何将概率转化为明确的类别。例如,在研究老鼠是否肥胖的例子中,假设我们有一组老鼠的数据,通过逻辑回归模型,可以得出每只老鼠为“肥胖”或“非肥胖”的概率。

  • 数据:老鼠的体重(x轴)和肥胖情况(y轴)。
  • 逻辑回归曲线:拟合后,根据体重可以预测老鼠肥胖的概率。
  • 阈值:如果将阈值设定为0.5,那么概率大于0.5的老鼠将被分类为肥胖,概率小于等于0.5的老鼠被分类为非肥胖。

通过设定阈值0.5,分类结果如上。我们可以通过改变阈值来探索不同的分类效果。

混淆矩阵与性能指标

通过混淆矩阵,我们可以总结模型的分类结果:
  • 真阳性(TP):真实为肥胖且被正确分类为肥胖的样本。
  • 假阳性(FP):真实为非肥胖但被错误分类为肥胖的样本。
  • 真阴性(TN):真实为非肥胖且被正确分类为非肥胖的样本。
  • 假阴性(FN):真实为肥胖但被错误分类为非肥胖的样本。
例如,使用上面的分类结果,我们可以构造混淆矩阵:
这个混淆矩阵表示:
  • 模型正确分类了2只肥胖的老鼠(TP=2),错误分类了1只非肥胖的老鼠为肥胖(FP=1)。
  • 模型正确分类了1只非肥胖的老鼠(TN=1),没有错误分类肥胖的老鼠为非肥胖(FN=0)。
基于混淆矩阵,我们可以计算以下两个重要的性能指标:
  • 灵敏度(Sensitivity)/ 真阳性率(True Positive Rate, TPR):TP / (TP + FN),表示在所有实际肥胖的样本中,模型正确分类了多少。
  • 假阳性率(False Positive Rate, FPR):FP / (FP + TN),表示在所有实际非肥胖的样本中,模型错误分类为肥胖的比例。
根据上面的混淆矩阵:
  • 真阳性率 TPR = 2 / (2 + 0) = 1
  • 假阳性率 FPR = 1 / (1 + 1) = 0.5

ROC 曲线

ROC 曲线通过展示不同阈值下的真阳性率(TPR)和假阳性率(FPR)的变化情况,帮助我们更好地理解模型在不同决策阈值下的表现。ROC 曲线的纵轴是真阳性率(Sensitivity/TPR),横轴是假阳性率(FPR)

绘制 ROC 曲线步骤:
  1. 选择阈值:从较低的阈值开始,逐步提高。
  2. 计算每个阈值下的 TPR 和 FPR
  3. 在 ROC 图上绘制点:将每个阈值对应的 TPR 和 FPR 在图上绘制为一个点。
  4. 连接这些点:形成 ROC 曲线。
ROC 曲线绘制的例子
假设有如下阈值(0.1、0.5、0.9)的结果:
我们在图中将这些点(1, 1)、(1, 0.5)、(0.75, 0)绘制出来,并连接它们,形成一条 ROC 曲线。
ROC 曲线的解读:
  • 曲线越靠近图的左上角,说明模型的分类性能越好。
  • 曲线越接近对角线,模型的分类效果越差,因为对角线代表随机猜测的分类结果。

AUC (曲线下面积)

AUC 是 ROC 曲线下的面积,用于衡量模型的整体性能。AUC 的取值范围是 0 到 1,AUC 越接近 1,说明模型的分类能力越强。

AUC 解读示例
  • AUC = 1:完美分类,模型的性能非常好。
  • AUC = 0.5:模型没有任何分类能力,相当于随机猜测。
  • AUC < 0.5:模型表现比随机猜测还差。

比如,若红色曲线的 AUC 是 0.9,而蓝色曲线的 AUC 是 0.7,则红色曲线对应的模型性能要优于蓝色曲线对应的模型。

Precision

在一些样本不均衡的情况下,例如少数类占比非常低,ROC 曲线可能无法很好地反映模型性能。这时,可以用精确率(Precision)来替代假阳性率(FPR)。

精确率公式
它表示在所有预测为正的样本中,真正为正的比例。
例子:罕见疾病检测

在罕见疾病的检测中,健康人群占比可能远高于患病人群。这时,精确率比假阳性率更加重要,因为我们关注的是模型预测为患病的那些人中,真正患病的人占多大比例。

Dr Leo
ENT医生的科研分享
 最新文章