跳转至

P3-8.5 如何把多个比较列组合成复核优先顺序?

Section ID: P3-8.5 Version: v2026.09.20

比较表的列很多,并不意味着必须把每一列都合成一个分数。建立复核候选队列时,要区分决定顺序的列与为解释依据而保留的列。相同数据在不同排序政策下可以得到不同顺序。优先级是政策应用的结果,不是观察值自动具备的属性。

先固定一行与各输入列的含义

下面是三个已选为复核对象的比较区间的虚拟资料。每行不是一次动作,而是包含多次已完成动作的比较区间,因此标识为window_id。A、B、C是本节内部标识,不是直接延续前一节的同字母行。这里只决定已选对象之间的顺序,不决定是否纳入复核。

输入列 本例中的含义
window_id 不同比较区间的唯一标识
diff_mean 近期各动作后段均值的平均值−基线对应平均值,单位L/min
recent_count 近期区间内不同的已完成动作数
decline_count 后段均值−前段均值 ≤ −0.30 L/min的近期动作数,包含边界且每次只计一次
safety_related 在预先规定的工艺复核分类中属于安全相关项目则为yes,否则为no

下降条件与P3-7.2相同。safety_related来自工艺分类记录,不由差值或样本数计算。yes不表示已经发生事故或超限,no也不保证安全。需要适用独立紧急响应程序时,不能用本排序练习替代。

假定所需测量与分类标记齐备,各基线与近期组的测量定义及运行条件匹配,三个区间的差值可以用同一流量单位比较。不能把缺失的安全分类填为no,也不能直接排序单位不同的差值。

并列读取差值与规则满足次数

window_id diff_mean (L/min) recent_count decline_count safety_related
A -0.35 20 14 yes
B -0.35 3 1 no
C -0.18 18 12 yes

下降比例为decline_count/recent_count:A为14/20=70%,B为1/3≈33.3%,C为12/18≈66.7%。这些数值可替代未定义的重复分数,但不包含发生顺序,不能读作连续下降次数。

差异幅度是去掉正负号后的绝对值。A与B为|−0.35|=0.35,C为|−0.18|=0.18 L/min。绝对值丢失了增加或减少的方向,因此仍要保留原符号。本政策同等处理两个方向的变化幅度;若实际目的是检测下降,则需要另行规定考虑方向的规则。

不能仅凭20次、18次或较小的离散程度就认证“可信度高”。还需检查观察覆盖范围、动作间依赖与基线适用性。B样本较少也不会自动决定它排最后。

政策1:安全相关分类、差异幅度、ID

虚拟政策queue-v1使用以下顺序。前一项已经决定先后时,后一项不能推翻该顺序。

  1. 将safety_related=yes的区间排在no之前。
  2. 相同分类内,diff_mean绝对值较大的在前。
  3. 两项都相同,则按window_id的字母升序排列。

先把A、C分入yes组,B分入no组。yes组内0.35 > 0.18,所以A在C前,结果为A → C → B。C在B前是因为第一项分类规则,而非故障概率更高或样本更多。

政策2:差异幅度、ID

用于对比的虚拟政策queue-v2仅采用绝对值降序 → ID升序,不将安全相关分类用于排序。A和B都是0.35,用ID打破并列,A在前;0.18的C在后,结果为A → B → C。这两个政策用于比较计算,并未验证哪一个更适合实际运行。

window_id queue-v1名次 queue-v2名次 决定顺序的关键理由
A 1 1 v1为yes组内较大差值;v2与B并列后按ID优先
B 3 2 v1属于no组;v2差值大于C
C 2 3 v1属于yes组;v2差值最小

两个政策都不把下降比例与近期次数用于排序。保留这些列是为了说明观察依据与解释局限。离散程度和模式摘要也未纳入本次排序规则。因此,“A因重复程度高而排第一”的解释与实际规则不符。若要利用这些列改变顺序,必须在新政策中明确它们的优先次序与并列处理规则。

把比较依据连接到复核优先级

flowchart TD
    A["已核查的比较行"] --> B["政策指定的排序列"]
    B --> C["应用优先次序与并列规则"]
    C --> D["名次与政策版本"]
    A --> E["保留次数与比例作为依据"]
    E --> F["区分局限说明与排名理由"]
    D --> F

输出保留window_id、rank、policy_version,并关联所用输入行。排名1表示在当前候选集合中先复核,不是故障概率为1或确诊。按ID处理并列是保持顺序一致的办法,并非名称A本身就是更重要的依据。

自己改变顺序

如果只把B的diff_mean改为−0.40,各政策会得到什么顺序?随后回到原表,只把C的decline_count从12改为18,名次会变化吗?

解析:第一次修改中,queue-v1先看安全相关分类,因此仍为A → C → B;queue-v2先看差异幅度,因此变为B → A → C。第二次修改只使C的下降比例变为18/18=100%。两个政策都不用这个比例,所以仍保持原顺序A → C → B与A → B → C。100%也不是故障概率。

检查清单

  • 能否解释行单位、每个输入列及下降比例的分子与分母?
  • 能否复现两种政策与并列处理,而不把未使用的列说成排名原因?
  • 能否区分名次与故障概率,并保留政策版本和输入依据?

来源与参考资料

  • Python官方文档,Sorting Techniques — 参考其按顺序比较多个排序键、并列时使用下一键的原理。数据与两种运行政策是本书自行构造的虚拟示例。查阅日期:2026-09-20。