假设光谱模型对一个苹果样品输出了 0.55。判成“有残留”,等于把一个近乎抛硬币的结果当成结论;判成“没有”,同样如此。只输出二值标签的模型,会把所有这类样品硬塞进某一边,而后面的送检、放行、召回决定都建立在这个硬标签上。光谱里的农残信号本来就很弱,模型在相当一部分样品上拿不准,是正常现象,问题在于系统有没有给这种“拿不准”留出位置。
先问一句:0.8 是不是真的等于八成
概率要能用于决策,前提是校准(Calibration):在所有输出接近 0.8 的样品里,实际含残留的比例应该接近 80%。支持向量机、随机森林和深度网络的原始输出常常偏离这个对应关系,类别不平衡时更明显,农残阳性样品通常是少数,这种偏差几乎是默认状态。
常见的检验是画可靠性曲线,再用校准误差 ECE 和 Brier 分数量化。修正方法有 Platt 校准和 isotonic 回归,需要用一份与部署条件相近、且没参与训练的数据来做。校准也不是一劳永逸,换了水果或换了季节,就应重做(相关背景见同一种农药换水果后的模型迁移)。
概率、置信度与拒识
概率描述“属于哪一类的可能有多大”。置信度更接近“这个估计本身有多可靠”,例如样品的光谱是否落在训练时见过的范围内。一个从没见过的新品种,模型也可能给出 0.9,但这个 0.9 没有多少根据。
拒识(Reject Option)就是让模型在不确定时保留判断,把样品交给下一道程序,而不是硬分类。共形预测(Conformal Prediction)是一种系统化的做法:输出的不是单个标签,而是一个预测集。2026 年 9 月发表在 Frontiers in Food Science and Technology 的一项研究,在欧盟 RASFF 通报数据上就采用了这一思路,其中约 78.4% 的预测集是单一类别,其余是“两类都有可能”。这种“不强行选边”的输出,在首页的食品安全 AI 为什么要敢于说不知道一文里也有讨论。
拒识也有代价:拒识率越高,进入复测和二次检测的样品越多。示意来说,若灰区占了三成样品,压力就会立刻传导到实验室。因此拒识率要与漏检率一起权衡,而不是越低越好。
三个区间怎么处理
把概率轴切成三段,每一段对应一套动作。下表中的区间数字是示意,实际取值来自校准后的概率与代价比。
| 区间 | 概率区间(示意) | 处理动作 | 主要代价 |
|---|---|---|---|
| 低风险 | 0–0.3 | 进入常规流程,仍按一定比例随机抽样送实验室 | 漏检:真有残留的样品被放行 |
| 不确定区 | 0.3–0.7 | 复测光谱、更换取样点,或转入进一步检测 | 时间与检测成本,占用周转 |
| 高风险 | 0.7–1.0 | 优先送 GC-MS/MS 或 LC-MS/MS 确认,结果出来前暂缓放行 | 送检费用、等待时间,误报时的库存占用 |
不确定区里的“复测”不是把同一个动作重复一遍。更有用的做法是换一个取样位置,例如同一颗果的另一侧,或果肩与果脐附近;重新做白板与暗参考校正,排除仪器漂移;必要时改用另一种手段,比如近红外单点测量或 SERS 快检,看两种结果是否一致。两次结果指向同一方向,样品才会从灰区移到高风险或低风险。
阈值怎么定:一笔示意的账
阈值不该凭感觉设定。下面的数字全部为假设。
设送检一个样品的成本为 300 元(示意),漏检一个真实超标样品造成的损失,包括召回、销毁与信誉,折算为 1000 元(示意)。对某个样品,若模型估计含残留的概率为 p,那么不送检的期望损失是 p × 1000,送检的成本是 300。两者相等时 p = 0.3,这就是上表中不确定区下界的来源。漏检代价越大,这条线越往左移,直到几乎所有样品都值得送检。
上界受实验室产能约束。假设实验室每周只能确认 50 个样品(示意),而概率高于 0.7 的样品有 120 个,那么“高风险”就不能一刀切,只能按概率从高到低排序,取前 50 个先送。也就是说,阈值由两件事共同决定:漏检代价与送检成本之比,以及实验室每周真正能消化的样品数。
上线以后盯哪三个数
- 校准误差随批次的变化。ECE 若持续升高,说明概率开始不可信,需要再校准。
- 不确定区的占比。灰区突然变大,常常意味着新品种或新基质进来了,是域偏移的早期信号。
- 低风险区的抽检阳性率。只有保留一部分随机抽检,才能知道模型放行的样品里到底漏了多少,而这个数字无法从模型自己的输出里得到。
纵横国际官网关注的正是这种可追问的输出:模型说“高”,要说明为什么;模型说“不确定”,要有下一步动作。至于某个样品最终是否超标,仍由实验室按法定检验方法测定,并对照 GB 2763《食品中农药最大残留限量》等适用法规的现行版本判定。概率解决的是“先测谁”,不是“判谁超标”。更宏观的趋势,可以看从风险分数走向可解释与不确定性分析这篇行业观察。