ELAI S.r.l.

稀有缺陷:AUC 0.94755 为何能与 91.74% 错误告警并存

用三个评分等级的精确实例连接 ROC、缺陷比例与精确率,分析阈值、复核能力、成本和估计限制。

稀有缺陷:AUC 0.94755 为何能与 91.74% 错误告警并存

应用研究 · AI 评估 · 2026 年 9 月 24 日

摘要:高 AUC 不能决定多少告警是正确的

我们构造一个三级评分分类器,精确 AUROC 为 0.94755。保持两类的条件评分分布不变,当缺陷比例从 10% 降至 0.1% 时,同一阈值的精确率从 90.91% 降到 8.26%。排序能力没有恶化,变化的是总体构成。本文推导这一结果、比较两个阈值,并说明实际选择为何还需要考虑复核能力与错误成本。

这是用 Python 计算的确定性合成实验,不涉及训练模型、生产图像或 EL-AI 客户。背景是工业质量检测,但条件概率的区别具有更广泛意义。需要初等概率、贝叶斯定理和混淆矩阵基础。本例数值由构造确定,真实估计的不确定性另行讨论。

1. 三个分母,三个问题

将缺陷品定义为正类。TP 是被标记的缺陷品,FN 是漏标缺陷品,FP 是被误标的良品,TN 是未标记的良品。灵敏度 TPR 的分母是全部缺陷品;假阳性率 FPR 的分母是全部良品;精确率 PPV 的分母是全部被标记件。混淆这些分母,就会把良好的类别条件性能误当成对告警准确性的保证。

TPR = TP/(TP+FN) FPR = FP/(FP+TN) PPV = TP/(TP+FP) π = P(defect) PPV = π·TPR / [π·TPR + (1−π)·FPR]

最后一个公式把缺陷且告警的联合概率写成 π·TPR,再把告警概率分解为两个互斥事件:缺陷告警和良品告警。这是对固定阈值应用贝叶斯定理。没有告警时分母为零,精确率未定义;若把它设为一,永不告警、漏掉全部缺陷的系统反而会显得最优。

2. 完整排序,而非单个 ROC 点

计算 AUC 需要的信息超过单个阈值的灵敏度和 FPR。设评分 H>M>L。缺陷品中,60% 为 H、30% 为 M、10% 为 L;良品中,0.1% 为 H、0.9% 为 M、99% 为 L。严格阈值只标 H,宽松阈值标 H 与 M。这些是明确声明的合成数学总体,并非观测数据。

P(score | defect) = (0.600, 0.300, 0.100) P(score | good) = (0.001, 0.009, 0.990) ROC: (0,0) → (0.001,0.6) → (0.01,0.9) → (1,1)

按照同分各计半分的标准约定,AUC 等于随机缺陷品评分高于随机良品的概率,加上同分概率的一半。严格胜出部分为 0.6×0.999+0.3×0.99=0.8964;同分部分为 0.6×0.001+0.3×0.009+0.1×0.99=0.1023。因此 AUC=0.8964+0.1023/2=0.94755。脚本也计算 ROC 梯形面积,两种构造一致。

点间线段代表同分处理约定,或在同一评分级内随机决定,而不是模型拥有额外分值。任意排序同分样本可能产生不同阶梯曲线,因此必须明确同分处理,尤其当离散或量化评分产生大量相同值时。本例同分对 AUC 的贡献超过 0.05,忽略它并非小事。

3. 改变发生比例,保持 ROC 不变

取 N=1,000,000 件作为计数尺度。我们并未检测一百万实物,而是将精确概率乘以约定总量。H+M 阈值下,TPR=0.9、FPR=0.01。缺陷比例 0.1% 时共有 1,000 件缺陷品,其中 900 件被标记、100 件漏检;999,000 件良品中有 9,990 件误报。告警共 10,890 件,仅 900 件正确。

缺陷比例阈值TPFPFN精确率
10%H600009004000098.52%
10%HM9000090001000090.91%
1%H6000990400085.84%
1%HM90009900100047.62%
0.1%H60099940037.52%
0.1%HM90099901008.26%

ROC 不变,因为 TPR、FPR 分别以类别为条件;精确率变化,因为它以告警为条件,而告警混合了两类,比例取决于 π。这一不变性要求类别条件评分分布不变,是先验比例变化假设,并不保证摄像头、材料、光照或缺陷类型改变后仍成立。若类内评分也改变,ROC 同样可能改变。

上:合成分类器 ROC,同分计半分。下:条件分布固定时,两阈值精确率随缺陷比例变化。均为精确概率,不是工业产线结果。
上:合成分类器 ROC,同分计半分。下:条件分布固定时,两阈值精确率随缺陷比例变化。均为精确概率,不是工业产线结果。

4. 从精确率目标推导误报要求

假设要求至少 80% 告警正确,同时保留 TPR=0.9。对贝叶斯公式求解 FPR,即得定量要求:π=0.001、目标精确率 p*=0.8 时,FPR 最大约 0.0002252,即 0.02252%。H+M 的 1% 超过它四十倍。当良品占总体绝大多数时,ROC 图上看似很小的差异,会彻底改变复核负载。

PPV ≥ p* FPR ≤ π·TPR·(1−p*) / [p*·(1−π)] π=0.001, TPR=0.9, p*=0.8 FPR ≤ 0.000225225…

收紧到 H 将 FPR 降至 0.001,却也将 TPR 降到 0.6,精确率仅 37.52%。改变阈值后不能仍代入原 TPR。对于这个三级分类器,即使随机选择一部分 H,也不会提高期望精确率,因为 TP、FP 同比例减少。达到 80% 需要新的区分信息、不同总体或有效的第二次检查,而非神奇阈值。

5. 精确率更高,选择仍可能更差

π=0.001 时,H 产生 1,599 次告警、漏掉 400 件缺陷;H+M 产生 10,890 次告警、漏掉 100 件。若每期复核能力为 2,000 件,这两种选择中只有 H 满足限制。但若漏检每件罚 100 单位、误报每件罚一单位,H 的成本为 40,999,而 H+M 为 19,990。这些是假想无量纲惩罚,用于揭示权衡,不是真实价格或损失。

Alerts = N[π·TPR+(1−π)·FPR] Cost = C_FN·Nπ(1−TPR) + C_FP·N(1−π)FPR

精确率描述告警构成,不为漏检缺陷赋值;复核能力描述约束,也不能证明某阈值在经济上更优。一致的决策必须先定义目标和约束。若拥堵队列也拖延真阳性处理,上述静态成本就不够,需要复核时间模型。加入人工复核而忽略数量,并不能消除统计问题。

6. 平衡测试集能证明什么

富含缺陷的测试集可比缺陷极少的随机样本更有效地估计各类型灵敏度。问题在于直接把其精确率搬到生产。在人为 50% 比例下,H+M 的 PPV=0.9/(0.9+0.01)≈98.90%,与稀有场景的 8.26% 相差甚远。增加测试正例有助于研究模型,却不代表真实流程的事件频率。

本例概率精确,真实概率则需估计。1,000 个负例中零误报不证明 FPR=0。若试验独立、固定误报率为 f,观察到零次的概率是 (1−f)^1000。令其为 0.05,可得单侧 95% 二项上界约 0.00299,远高于此前所需的 0.0002252。需要足够且有代表性的负例,而非只报告四舍五入为零的百分比。

独立性和代表性并非形式要求:同一工件几乎相同的多帧,不等于独立工件;干净实验线也未必代表磨损生产线。应在开发数据选择阈值,在独立测试集评估。反复看测试错误再调阈值,会让测试成为优化的一部分。贝叶斯公式再正确,也无法挽救由数据泄漏得到的 FPR。

7. 来源、可复现性与解读

Saito 与 Rehmsmeier(PLOS ONE,2015)通过模拟与应用数据分析 ROC 和 precision-recall;我们阅读了基础、方法和结果。该工作有助于区分排序与正类预测可信度。本文使用自建离散总体和精确计算,不复现其数据集。重点不是废弃 ROC,而是让它回答适当问题,不能代替发生比例、阈值与实际负载。

已执行附件使用 Python 3.14.0、标准库且无随机性;Matplotlib 3.11.2 生成四种语言的图。文件保存概率、计数、两种方法验证的 AUC 及发生比例敏感性曲线。除浮点表示外,计数对构造总体精确。下面代码重现主要效应及二项上界,不训练分类器。

for pi in [.1, .01, .001]:
    precision = pi*.9/(pi*.9+(1-pi)*.01)
    print(pi, precision)
print(1-.05**(1/1000))

对于 EL-AI 计划深入研究的 AI 应用,这是一项技术评估标准,而非已经取得工业成果的声明。结论可验证:AUC=0.94755 与精确率=8.26% 可以同时成立,毫无数学矛盾。解读需要知道阈值、输入总体及每种决策后果。专业能力不在于展示最高数字,而在于明确数字衡量什么。

Saito T., Rehmsmeier M. (2015), The Precision-Recall Plot Is More Informative than the ROC Plot When Evaluating Binary Classifiers on Imbalanced Datasets, PLOS ONE 10(3): e0118432.

代码、结果与说明。JSON 结果。来源查阅于 2026 年 9 月 24 日。分析由 AI 辅助,不声称经过同行评审。ImageGen 封面仅作示意,并非 EL-AI 或客户产线照片。