[Paper] 通过 ROC 曲线下面积评估软件缺陷预测模型可能产生误导

发布: (2026年4月23日 GMT+8 00:28)
7 分钟阅读
原文: arXiv

Source: arXiv - 2604.20742v1

概述

本文质疑软件缺陷预测(SDP)领域长期以来的一个假设:即受试者工作特征曲线下面积(AUC)是一个可靠的、适用于所有情况的指标,用来评估模型区分有缺陷模块和干净模块的能力。通过在 ROC 曲线上添加明确的阈值标记进行可视化,作者展示了高 AUC 可能掩盖严重缺陷——尤其是在某些阈值下,模型的真正率和假正率会低于随机猜测的表现。

关键贡献

  • Critical analysis of AUC: 展示了具体情形,即使模型的AUC很高,在特定阈值选择下仍表现得比随机还差。
  • Decorated ROC curves: 引入一种简单的可视化增强(突出阈值点),使隐藏的性能差距立即可见。
  • Threshold‑based performance plots: 提供了将TPR和FPR随决策阈值变化绘制的替代图形,呈现模型行为的更细粒度视图。
  • Guidelines for SDP evaluation: 建议使用丰富的ROC可视化或补充指标,而不是仅仅依赖AUC。

方法论

  1. 数据集与模型:重复使用了多个公开的缺陷预测数据集(例如 NASA、PROMISE),并训练了典型的分类器(逻辑回归、随机森林、SVM)。
  2. 标准 ROC/AUC 计算:按照文献中的常规做法,为每个模型计算经典的 ROC 曲线及其 AUC。
  3. 装饰过程:在 ROC 曲线上叠加对应于密集概率阈值集合(例如每 0.01)的标记,使得容易看到曲线何时穿过随机猜测对角线。
  4. 阈值‑响应图:绘制 TPR(θ) 与 FPR(θ) 随阈值 θ 的变化图,揭示 TPR < FPR(即劣于随机)的区间。
  5. 对比分析:将传统的 AUC 数值与装饰后的可视化进行并列,识别出 AUC 给出误导性乐观评估的情况。

该方法仅需模型的预测概率——无需额外数据或复杂计算——因此可在任何 SDP 项目中轻松复现。

结果与发现

  • 高 AUC ≠ 均衡优势:多个模型的 AUC 超过 0.80,但在某些阈值范围内,真正率(TPR)低于假正率(FPR),这意味着在这些操作点上,它们的表现甚至比随机猜测还差。
  • 阈值敏感性:TPR/FPR 曲线的形状显示,某些模型只有在阈值设得非常低(高召回率)或非常高(高精确率)时才可靠,这限制了它们的实际用途。
  • 可视化诊断:装饰后的 ROC 曲线能够立即突出问题区域——而单一的 AUC 数值则完全隐藏了这些信息。
  • 需要替代指标:考虑特定操作点的指标(例如精确率‑召回率曲线、成本敏感损失)或完整的 TPR/FPR 阈值函数,能够更真实地反映模型是否已准备好部署。

实际影响

  • 模型选择:团队不应仅因模型的 AUC 较低就放弃它;同样也不应仅因 AUC 较高就盲目接受。应检查阈值特定的行为,以确保模型符合项目的风险容忍度(例如,低误报成本)。
  • 阈值调优:部署 SDP 模型时,使用 TPR/FPR‑vs‑threshold 图来选择符合业务约束的决策阈值(例如,有限的 QA 资源)。
  • 报告标准:将美化的 ROC 曲线或阈值响应图加入内部仪表盘、代码审查或研究论文,以避免 “仅看 AUC” 的夸大宣传。
  • 工具:只需几行代码(例如使用 matplotlib/seaborn 在 Python 中或 ggplot2 在 R 中)即可生成丰富的可视化,从而让现有的 CI 流水线自动标记出存在隐藏性能缺陷的模型。

限制与未来工作

  • 数据集范围:聚焦于经典的缺陷预测基准;在更新、更大规模的工业数据集上结果可能会有所不同。
  • 模型多样性:仅检查了少数标准分类器;基于深度学习的缺陷预测模型可能表现出不同的 AUC 与阈值之间的动态关系。
  • 自动阈值选择:未提出选择“最佳”阈值的算法方法;未来工作可以将成本敏感优化与可视化诊断相结合。
  • 用户研究:作者提出(但未进行)实证研究,以检验在展示装饰化 ROC 曲线时,开发者是否真的能做出更好的决策。

通过敦促社区超越单一标量指标,本研究推动研究者和实践者朝着更透明、可操作的缺陷预测模型评估方向前进。

作者

  • Luigi Lavazza
  • Gabriele Rotoloni
  • Sandro Morasca

论文信息

  • arXiv ID: 2604.20742v1
  • 分类: cs.SE
  • 发布时间: 2026年4月22日
  • PDF: 下载 PDF
0 浏览
Back to Blog

相关文章

阅读更多 »