何时该用 Top-K 替代 AUROC/AUPRC
很多生信任务的阳性极少,实验又贵,最后往往只验证排序最靠前的一小批候选。这时 AUROC、AUPRC 看的是「整条排序好不好」,实验室关心的却是「前 K 个里有没有真货」。两者不是一回事。Hits@K、MRR、precision@k、富集因子(EF)这类 Top-K 指标,往往更接近实际用法。
下面先用一个示例把差别算清楚,再对照一篇真实论文,最后按任务类型说哪些适合换、哪些不必换。
一、一个示例
假设要给基因调控边(或药物靶点)排序,设定如下:
| 设定 | 取值 | 含义 |
|---|---|---|
| 候选边 | 10,000 | 模型给出完整排序 |
| 真阳性 | 20 | 阳性率 0.2% |
| 实验预算 | 只做前 50 | 每条验证按 5 万元,合计约 250 万 |
| 真正关心的问题 | 前 50 里能命中几条? | — |
构造三种排序(可用 sklearn 的 roc_auc_score、average_precision_score 复现):
| 方法 | AUROC | AUPRC | Hits@50 | Precision@50 | MRR | 花 250 万的结果 |
|---|---|---|---|---|---|---|
| A | 0.986 | 0.065 | 0 | 0% | 0.008 | 一条都没捞到 |
| B | 0.643 | 0.084 | 6 | 12% | 0.044 | 大约 42 万换一条真边 |
| C | 0.979 | 0.074 | 5 | 10% | 0.024 | 大约 50 万换一条真边 |

左图里 A、C 几乎贴着左上角,看起来都不错;中图三者都趴在底部,AUPRC 也分不出谁能进实验室;右图在预算线 (K=50) 左侧,A 仍是 0,B 和 C 才有命中。
原因很简单:
- 方法 A:20 条真阳性全挤在第 52–242 名。整体排序不错,AUROC 接近 0.99,但前 50 一条也没有。
- 方法 B:6 条进了前 50,其余掉得很后,AUROC 只有 0.64。只看 AUROC 会觉得远不如 A,按实验预算却该选 B。
- 方法 C:说明问题不在「AUROC 高就一定没用」,而在于 AUROC 不怎么反映「前几名有没有货」。A 和 C 的 AUROC 只差 0.007,Hits@50 却是 0 对 5。
三个指标各自在问什么:
- AUROC:随机抽一对阳性和阴性,模型有没有更偏向阳性?方法 A 几乎总是对的,但这不等于阳性会出现在你付得起验证的前 K 名里。
- AUPRC:阳性很少时比 AUROC 老实一些(这里三种都只有 0.06–0.08),但仍是整条 PR 曲线的平均,对「只验证前 50」这件事不够敏感。
- Hits@K / Precision@K / MRR:直接回答预算内能捞到多少。
随机乱排时期望 Hits@50 大约是 (50 \times 0.2% = 0.1);方法 B 得到 6,大约是随机的 60 倍。AUROC 说不清这件事值不值得做实验。需要说明的是,在 AUROC 曲线中,能观察到方法B虽然整体值小,但是在左下方放大后其实他是高出方法A的,这也是大家观察AUROC曲线的时候需要注意和思考的地方,如果方法B恰好是你的方法,方法A是baseline的话。
二、真实论文里的例子:RareGPS
Genome Medicine 上的 RareGPS 做罕见病药物靶点排序,数字不必虚构:
| 指标 | 数值 | 怎么读 |
|---|---|---|
| 基线阳性率 | 0.19% | 随机抽 1000 个,期望大约 2 个真靶点 |
| AUROC | 0.70 | 摘要里看起来还行 |
| AUPRC | 0.06 | 整体精度其实很一般 |
| Precision@100 | 30%(NNS=3.3) | 验证 100 个约命中 30 个;平均筛 3.3 个出一个 |
| Precision@1000 | 13.5%(NNS=7.4) | 中等规模跟进 |
| Precision@10000 | 5.49%(NNS=18.2) | 大规模筛选 |
同一模型:AUROC=0.70 不算差,AUPRC=0.06 说明整体排序有限;但 Precision@100=30% 相对 0.19% 的基线大约富集 158 倍——这才是值不值得开实验的信息。只报 AUROC,既不知道该不该做,也不知道该做前多少个。
三、哪些任务更该看 Top-K
共性大致是:阳性率很低(常低于 1%),每个候选的验证很贵,实际只会跟进前 K 个。
1. 药物靶点优先级排序
和基因调控网络边排序很像。反向筛选里大家早就说过:AUC 看的是各种阈值下的整体区分,真正关心的是真实靶点有没有进前几名。所以富集因子和 Top-k 召回(k=1,5,10)用得更多。疾病基因识别的基准研究也指出,药物发现场景里 AUROC 往往不是最好的选择,前 100 个新预测的差别更能说明方法好不好。GPS、RareGPS 都直接报头部富集或 precision@k / NNS。
2. 大规模虚拟筛选
分子库可以到十亿级,阳性极少,实验通常只做前几千到几万。Nature Biotechnology 那篇抗菌虚拟筛选同时报了 AUPRC 和 BEDROC20——后者更强调排序靠前的那一段。中段、尾段的分子反正不会去做实验,整体可分性不如头部富集重要。
3. 致病性变异优先级
全基因组里找致病变异,临床只要一份短名单。文献里也常写:生物学家和临床医生要的是一小份可靠候选。这时 AUPRC 一般优于 AUROC,而 Top-K 更直接对应后续跟进名单。
4. 新抗原 / MHC 呈现肽预测
能被 MHC 呈现的肽很少。评估里常用实验验证的呈现肽作阳性、匹配的 decoy 作阴性,AUPRC 仍然有用;若疫苗设计只取前 10 或前 20 条,Top-K 命中率更贴近实际流程。
四、换指标还不够,有时还要改划分方式
有些任务不只是指标选错了,训练/测试的划分方式也会把问题掩盖掉:若测试集里的实体在训练时已经见过(transductive),分数可以很高;换到未见实体(inductive)上,泛化可能立刻垮掉。
5. 蛋白-蛋白相互作用 / 蛋白结构邻居检索
不少 PPI 基准是 transductive 的,生物学家却更关心未见蛋白上的相互作用。结构邻居检索里也有人发现 ROC 不可靠,AUPRC 更合适;传统 Top-K accuracy 也不够细(两个算法在 Top-10 里分别找到 1 个和 2 个邻居,按老定义都算命中),于是有人改用 Top-K hit ratio。
6. 增强子-启动子互作 / 染色质环 / 三维基因组接触
真实互作很少,负样本池很大。有人用 AUROC 评估 EPI 模型得到 0.95,换成 AUPRC 只剩大约 0.3。若再把未见增强子或未见启动子留作测试,用 Hits@K 评估,会更接近「预测新调控元件」这件事。
7. 噬菌体-宿主互作
菌株水平的预测往往极不平衡。AUROC 容易偏乐观,文献里常建议看 AUPRC、F1、MCC。更稳妥的做法是:测试集留出未见菌株,再配上 Top-K 排序指标。
8. 细胞类型注释
AUPRC 已经用得很多。若目标是给新数据里罕见细胞类型列出可信的前几个候选,Top-K 排序质量往往比全局 AUROC 更有用。
五、不必一刀切的情况
9. 罕见临床事件(短期死亡、败血症等)
AUROC 对患病率不太敏感,AUPRC 则敏感。跨人群比较模型时,AUPRC 不好直接比,AUROC 反而有用。若固定在同一人群,只关心前 K 个高危患者里真正出事的比例,再看 Top-K 或 PPV@K 更合适。
10. 差异表达、治疗反应预测
这些任务里 AUPRC 常是主指标;Top-K 可以补充报告,但不一定要取代它——阳性定义往往没那么极端,整体排序本身也有意义。
六、怎么判断该不该换
可以问三件事:
- 阳性率是不是很低(比如低于 5%)?很低时 AUROC 容易显得虚高。
- 验证预算是不是只够前 K 个?是的话,Top-K 比整条 AUPRC 更贴近实际。
- 是否需要推广到未见过的基因、蛋白、菌株或分子?若需要,划分方式也要改成 inductive(测试实体训练时未见过),否则 transductive 下的高分可能站不住。
三条都符合的,常见于靶点优先级、虚拟筛选、疾病基因识别、致病变异排序、新抗原预测,以及 inductive 设定下的 PPI、GRN、噬菌体-宿主预测。
分类较平衡、主要关心整体风险区分时,AUROC/AUPRC 仍然合适,硬换成 Top-K 反而丢掉信息。
另外,AUPRC 对数据集构成也很敏感,不同实现有时会算出互相打架的结果。即便报 AUPRC,也一并报 Hits@K 或 MRR 更稳妥——两者回答的问题本来就不完全一样。
CC BY-NC-SA 4.0
本文由 Xiang CHEN 陈向 创作,采用 CC BY-NC-SA 4.0 协议,首发于 https://chenxofhit.xyz 个人网站。
您可以自由地:
- 分享 — 在任何媒介以任何形式复制、发行本作品
- 演绎 — 修改、转换或以本作品为基础进行创作
惟须遵守下列条件:
- 署名 — 您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。您可以用任何合理的方式来署名,但是不得以任何方式暗示许可人为您或您的使用背书。
- 非商业性使用 — 您不得将本作品用于商业目的。
- 相同方式共享 — 如果您再混合、转换或者基于本作品进行创作,您必须基于与原先许可协议相同的许可协议分发您贡献的作品。
商业使用请联系:[email protected]