P3-9.9 实际目标与代理 target 应该如何区分¶
Section ID:
P3-9.9Version:v2026.07.20
在现实数据里,真正想预测的结果往往无法被直接看见。所以就会很想拿一个运营中间判断,或者一个替代列,先当成临时 target 来用。这里需要区分的是实际目标(actual target)和代理 target(proxy target)。必须先写清楚:当前使用的 target,到底就是你真正想知道的结果,还是用来替代它的一列。
| target 类型 | 含义 |
|---|---|
| 实际目标 | 你真正想知道、最终也真正想减少的结果 |
| 代理 target | 因为实际目标看不到,或出现得太晚,所以临时拿来替代的一列 |
例如,如果无法直接看到实际状态确认,那就可能先把需要复核拿来做 target 候选。但两者不是同一个意思。代理 target 可以成为起点,但它不会自动等同于实际目标。
| 先写下的备注 | 为什么需要 |
|---|---|
| 真正想知道的结果是什么? | 为了不把问题原本的目的藏起来 |
| 当前这一列为什么是代理 target? | 为了留下它与实际目标之间的距离和限制 |
| 它与实际目标是以怎样的距离连接的? | 为了把代理 target 的局限以及它与实际目标之间的距离保留下来 |
为什么这个区分会改变问题类型本身¶
actual target 和 proxy target 的差别,并不只是名称不同。只要你真正要预测的对象变了,当前这个问题应该被放成比较报告、复核候选筛选问题,还是要提升成预测问题,也会一起改变。
| 当前真正能看到的东西 | 更自然的问题类型 | 原因 |
|---|---|---|
| 实际目标可以直接看到 | 预测实际目标 | 因为输入与结果可以直接绑定到同一个问题上 |
| 实际目标出现得晚,只能先看到代理列 | 预测代理 target,或把它当成复核候选问题 | 因为现在预测的值与真正想知道的值并不相同 |
| 实际目标很弱,代理列也不稳定 | 保持为比较报告或复核队列 | 因为连“哪一列该当结果列”本身都还没有足够关上 |
换句话说,一旦使用 proxy target,就必须区分这个问题可以先做和这个问题正在直接解决原始目标。表面上看像是同一个预测问题,实际上可能预测的是代理判断,而不是实际目标。如果这层差别没有写出来,后面再去解释分数时,就会混淆到底是把什么预测对了。
先看一个场景¶
假设你真正想知道的是最终状态确认,但当前立刻能观测到的只有 review_needed。
| event_id | recent_diff | repeatability | review_needed | final_status |
|---|---|---|---|---|
| A | -0.31 | high | 1 | 尚未出现 |
| B | -0.05 | low | 0 | 尚未出现 |
| C | -0.28 | high | 1 | 尚未出现 |
在这张表里,现在立刻能构造出的预测问题可能是 review_needed。但那并不等于直接预测 最终状态确认。也就是说,此刻建立的问题是是否需要复核,而不是最终状态会是什么。只有保留 proxy target 这个标记,当前问题类型到底是实际目标预测还是代理列预测才会清楚。
用一个小图来看¶
一旦使用 proxy target,就更适合按下面顺序重读:现在能看到什么,以及它和真正想知道什么到底在哪里分开。
flowchart TD
A[先写下真正想知道的结果] --> B{这个实际目标现在能被观察到吗}
B -- 是 --> C[围绕实际目标建立问题]
B -- 否 --> D[先使用当前可见的代理列]
D --> E[记录它与实际目标之间的距离和限制]
E --> F[明确说明这仍是代理 target 预测]
因此,proxy target 不是一个为了方便而起的临时名字,而是一种明确声明:当前测量的是一个不同于原始目标的替代对象。这里的核心,是把真正想知道的结果、现在能观测到的代理列、以及两者之间距离的记录一起留下来,让代理目标的限制被保存在结构里。
来源与参考资料¶
- Google, Machine Learning Glossary,
label,derived label,proxy labels。用于确认术语依据:在监督学习中,标签是一个样本的答案或结果部分;当实际标签不存在时,应谨慎选择代理标签。 https://developers.google.com/machine-learning/glossary / 确认日: 2026-07-20