返回目录
公开知识笔记 · 不进入目录
正例-未标注学习PU Learning
公开知识笔记
正例-未标注学习PU Learning
一句话理解:当数据只有“确认的正例”和“大量不知道真假的未标注项”时,不应把所有未标注项直接当负例;这类学习问题叫PU Learning。
1. 与普通二分类的区别
普通监督学习假设训练集有可靠正例和可靠负例。PU学习只有:
- :已确认的正例;
- :未标注集合,其中混有真实负例和漏标正例。
在SIDER矩阵中,1—5级是有记录关联,0是未记录项。0并不等于已证实无关联,所以更接近而不是。
2. 为什么“全当负例”有问题
若一个真实但尚未记录的药物—副作用组合被当负例:
- 训练会惩罚模型给它高分;
- 测试也会把它算成假阳性;
- 数据库越不完整,偏差越严重。
这在药物安全发现任务中特别矛盾:模型本来就是为了发现尚未记录的风险,却可能因发现它而被扣分。
3. 常见处理思路
方案A:未标注项降权
不完全信任,给它较小损失权重。A3Net的第二项损失乘,属于类似思路,但它仍把所有未知预测拉向固定基线0.5。
方案B:估计类别先验
估计未标注集合中正例比例,再构造无偏或非负风险估计。它需要关于正例被标注机制的假设。
方案C:可靠负例挖掘
从中选出最不可能为正的样本作为临时负例,再迭代训练。风险是早期误判会被放大。
方案D:正负样本敏感性分析
改变未知项权重、负采样比例或评估负例定义,检查结论是否稳健。这是复现A3Net时最容易先做的改进。
4. A3Net里的两个具体风险
- warm start留出的已知正例被置0后,仍进入未知项损失并被拉向0.5;这不是读取真实标签的直接泄漏,但测试正例以弱负/未知身份参与了训练目标。
- 计算AUC时把原始0当负例,可能把漏标正例当成假阳性。
5. PU学习不能自动解决什么
PU方法仍依赖数据收集机制。若药品说明书更倾向报告严重或常见副作用,已标注正例不是随机抽样,简单PU假设也可能失效。外部数据库验证、时间切分和人工核验仍然重要。
6. 初学者检查清单
- 数据里的0到底表示什么?
- 是否存在可靠负样本?
- 未标注项如何进入损失?
- AUC的“负例”从哪里来?
- 换一种未知项权重,结论是否改变?
相关概念
- SIDER与药物副作用频率预测:为什么0是未记录
- Warm Start、Cold Start与交叉验证:留出正例怎样被处理
- 预测模型评价指标:PU设定如何影响AUC等指标
相关论文
- A3Net精读笔记(A3Net)
被以下札记引用
2026-W35