P3-4.4 哪些信号说明样本单位抓错了¶
Section ID:
P3-4.4Version:v2026.09.19
同一个标签出现在多行中,并不意味着样本单位一定错误。表格可能只是把一次动作的结果关联到各个时点记录。警告要求检查原来的对象与计算范围,并不是数据错误或设备故障的确定判定。
前一节展示了同一批资料如何转换为时点表、动作表和区间表。本节区分误读表格单位的线索,以及检查后真正需要修改的部分。
发现信号后要检查什么¶
| 可见信号 | 先检查什么 | 检查后可能的判断 |
|---|---|---|
| 同一事件的标签重复出现 | 标签属于时点还是整次动作? | 可能是有意重复存储,也可能在汇总时把行数错当成事件数 |
| 仅凭一行无法解释均值或斜率 | 计算所用的事件、观测区间和单位 | 把多个观测计算出的特征关联到一行,可以是合理的 |
| “这一条案例”的含义不清 | 语句指的是时点、动作还是区间? | 重新检查比较对象与表格单位是否一致 |
| 同一事件同时出现在训练和评估中 | 目标是新事件,还是已见事件的其他时点? | 评估新事件的表现时,需要按事件分开 |
仅凭 flow_mean 这个名字,无法判断它是动作均值还是近期区间均值,需要写明计算对象。同样,把 duration_seconds 解释为动作时长,需要开始与结束边界。下方 A 的最后一个观测在第 17 秒,但没有结束标记,因此不能据此确定完整动作的时长。
把多个观测计算出的值存放在时点行上,本身并不是错误。应检查其观测区间和可用时间是否符合问题。例如,只有动作结束后才能计算的全程均值,不能用作该动作进行中的预测输入。
18 个阳性行代表 1 次阳性动作¶
虚构原始日志 CSV 包含 36 条时点记录。event_id 标识动作,second 是动作开始后经过的秒数,flow 的单位是 L/min。本练习的 review_needed 是赋予整次动作的虚构标签:1 表示标记为需要复核,0 表示未标记为需要复核。它不是真实故障标签,也不是每个时点的故障判定。
先确认同一事件内的标签一致,再比较行数与标签之和:
| event_id | 时点行数 | 重复存储的标签 | 行标签之和 | 每次动作只计一次的复核对象数 |
|---|---|---|---|---|
| A | 18 | 1 | 18 | 1 |
| B | 9 | 0 | 0 | 0 |
| C | 6 | 1 | 6 | 1 |
| D | 3 | 0 | 0 | 0 |
| 合计 | 36 | — | 24 | 2 |
将 A 的 18 行中的 1 相加得到 18,但这些行复制的是同一次动作的标签,所以复核对象只有 A 这一次动作。全表则是 18 + 6 = 24 个阳性行,对应 A、C 两次动作。报告“有 24 次动作需要复核”,就是误读了汇总单位。
还要看分母。阳性行比例为 24/36 ≈ 66.7%,标记为需复核的动作比例为 2/4 = 50%。它们回答不同的问题。在行比例中,A 占的行数是 D 的六倍。这里的两个比例都不是模型准确率或故障概率。
B、D 的标签之和为 0,但 0 也分别重复存储在 9 行、3 行中。仅凭标签之和,会漏掉阴性标签的重复。应同时检查每个事件的行数和标签一致性。
改变警告阈值后,哪些事件还会被选中¶
打开资料,数出四个事件各自的行数,再调整 repeat_warning_threshold。本练习的规则是:对于标签一致的事件,若 行数 > 阈值,就将其列为单位检查对象。这是筛选重复存储检查对象的虚构规则,不是故障阈值或标准质量要求。行数包括第一行。
| repeat_warning_threshold | 被选中的 event_id | 检查对象动作数 |
|---|---|---|
| 1 | A, B, C, D | 4 |
| 3 | A, B, C | 3 |
| 9 | A | 1 |
| 18 | 无 | 0 |
阈值从 1 提高到 3 后,D 被排除。D 有 3 行,不满足 3 > 3。阈值为 9 时,B 也因等于阈值而被排除,只剩 A。如果只显示“是否至少有一个对象被选中”,阈值 1、3、9 的结果都会是 yes,因此需要一起查看名单和数量。
阈值为 18 时警告消失,但原始表与标签没有改变。标记为需复核的仍是 A、C 两次动作。单位检查对象数与标签所指的复核对象数不同。 减少警告也不意味着数据错误已被修复。
合并前先检查标签冲突¶
现在假设 A 的 18 行中有一行改为 review_needed=0。行标签之和变为 17,但 A 内出现了 0、1 两种冲突标签。在当前“一次动作一个标签”的设定下,应先检查这种冲突。提高重复警告阈值并不能解决它。
用 max() 选择 1,或只保留第一行,都会掩盖不一致。需要检查原始标签记录与关联规则:是否混入了修订前后的标签,或把时点判定误当成了动作标签?确认前,不应确定 A 的动作标签。反过来,如果标签本来就描述各个时点,那么同一次动作中出现不同值可能是合理的。
从信号返回汇总规则检查¶
下图展示发现重复存储后的判断顺序。先确认标签对象及一致性,再让计数单位与报告对象相符。
flowchart TD
A["发现重复存储"] --> B["检查标签对象与范围"]
B --> C{"每次动作一个标签?"}
C -->|否| D["检查对应对象的标签定义"]
C -->|是| E{"动作内标签是否一致?"}
E -->|否| F["检查原始记录与关联规则"]
E -->|是| G["按问题检查汇总与划分单位"]
最后,请改写“阈值为 3 时有 3 个警告,所以有 3 次故障动作”。参考答案是:“A、B、C 三次动作被选为重复存储与单位检查对象。原始复核标签为 1 的是 A、C 两次动作;仅凭这些资料无法确定是否发生故障。”
检查清单¶
- 能否解释 A 的 18 个阳性行为何只代表 1 次需复核动作?
- 能否区分 24/36 与 2/4 的分子、分母?
- 能否说明阈值 1→3 时 D 被排除的原因,以及阈值 18 时警告消失后哪些事实仍未改变?
- 是否确认了标签之和为 0 的 B、D 也有重复存储?
- 是否检查原来的对象与记录,而不是任意合并冲突标签?
- 能否区分单位检查对象、复核标签与设备故障?
来源与参考资料¶
- Google for Developers,Machine Learning Glossary: label。用于确认标签的一般含义。本节的
review_needed含义和重复检查规则是虚构案例的设定。/ 查阅日期:2026-09-19 - scikit-learn developers,Cross-validation for grouped data。为评估训练中未见过的组时按组分开提供依据,并不将重复存储本身判定为错误。/ 查阅日期:2026-09-19