类别不平衡处理方法在蛋白配体中的应用 - 第2节
2.1 什么是类别不平衡?——先从一个真实案例说起
我记得刚入行那会儿,接手了公司一个激酶抑制剂的虚拟筛选项目。数据漂亮,模型也挺新,一跑结果,精确率95%,召回率也是95%。我当时心里还挺得意,觉得一次就做成了。结果领导看了一眼,问我:“你知道正样本和负样本比例是多少吗?”我翻了一下标签统计,当场就愣住了——活性化合物只有0.5%,非活性占了99.5%。
换句话说,模型只要学会“全判非活性”,就能拿99.5%的准确率。精确率和召回率双双95%,完全是假象。我那时才真正意识到,类别不平衡(Class Imbalance)这玩意儿,不是你在课本上看一条定义就能躲过去的。
所谓类别不平衡,说白了就是分类任务中,不同类别的样本数量差距悬殊。在药物发现里,活性分子和非活性分子的比例,经常是1:100甚至1:100000。拿这种数据直接训练,模型很快就被“多数类”带跑了——它觉得“多数类”就是世界的全部。
| 概念 | 通俗解释 | 蛋白-配体场景中的体现 |
|---|---|---|
| 多数类(Majority Class) | 样本量占绝对优势的类别 | 非活性配体(decoy,负样本) |
| 少数类(Minority Class) | 样本量很少的类别 | 活性配体(active,正样本) |
| 不平衡比(IR) | 多数类样本数 / 少数类样本数 | IR = 10 ~ 1000+ 常见于高通量筛选数据 |
2.2 它对模型的影响有多大?
有些人觉得不平衡顶多是“精度下降”。我告诉你,远不止这么简单。它会在模型行为上引发三个非常隐蔽的问题。
2.2.1 模型变成“复读机”
大多数深度学习模型用的损失函数,比如交叉熵,默认给每个样本的权重是一样的。少数类在整个训练批里几乎没存在感,损失被多数类淹没。模型学来学去,最后只学会一个无脑策略:无脑输出多数类。
结果就是:
- 准确率看着很高(比如99%)
- 但少数类的召回率几乎为0
- 模型压根没有学到“活性”是什么,它只是复读机
我曾经在复现一个论文的蛋白-配体二分类模型时遇到过同样的事。论文声称AUC=0.97,我用相同的ROC曲线一算,确实差不多。可当我画出混淆矩阵,发现正样本的召回率只有3%。为什么?因为论文只报告了AUC,没告诉你实际召回率。这就是“复读机”掩耳盗铃的表现。
2.2.2 概率校准漂移
Sigmoid输出不再是真实的概率,而是一个极度偏向多数类的校准值。你设定阈值0.5,结果99.9%的样本都落在0.5以下,活性信号被平滑掉了。比如说,你原来希望“置信度>0.8的分子优先实验”,但因为校准偏移,0.8对应的是极低的可能性。
2.2.3 梯度被稀释
拿GNN(图神经网络)来举例吧,配体和蛋白构建的交互图里,假设一个batch里有100个复合物,其中只有2个是活性的。反向传播时,正样本梯度的力量很快就被负样本淹没了。模型更不敢更新关于“氢键、疏水口袋方向”的参数,因为这些特征在80%的非活性结合中也是常规存在。
2.3 典型场景:活性与非活性
先说最简单的二元场景——活性vs非活性。你手里有个激酶靶点PDB结构,配体数据库里既有已知活性配体,也有疑似非活性配体。标签怎么来?
- 实验标签: IC₅₀ < 1 μM 为活性;IC₅₀ > 10 μM 为非活性;中间值扔掉,避免“模糊区”
- 虚拟筛选标签: 对接打分、分子动力学结合自由能等输出结果,这本身带着噪声
无论哪种,活性样本收集的成本都太高。做一轮实验花的钱和精力,足够你收集成百上千的非活性分子。结果就是,活性永远是那个少数类。
2.4 典型场景:虚拟筛选
虚拟筛选(Virtual Screening, VS)是蛋白-配体发现中极典型的不平衡场景。你要做的事情是:从几百万个分子里找出大概率有活性的苗头分子。几千个分子用于训练,几百万个分子用于预测。
| VS阶段 | 不平衡特点 | 典型IR |
|---|---|---|
| 训练数据(已知库) | 活性已知,但活性样本少 | 1:100 ~ 1:1000 |
| 测试/候选库 | 活性未知,非活性占绝大多数 | 1:10000 ~ 1:100000 |
| 实际实验验证 | 筛选出的Top分子再验证,但仍有大量假阳性 | 1:10 ~ 1:100 |
我记得去年做的一个VS项目,训练集里活性配体只有200个,非活性配体20万个,IR=1000。第一轮训练,模型直接瘫痪。用原始数据训练,预测结果几乎全是非活性。我尝试了过采样+权重调整组合,才把Top-50 Hits的真实活性率从0%拉到12%。
虚拟筛选场景下,不平衡带来的核心痛点是:
- 正样本太稀缺,模型学不出足够泛化的活性模式
- 候选库中有大量decoy(假阴性非活性),数量级悬殊导致假阳性爆炸
- 评估很贵,你不能等全部预测做完才看效果,在早期就得了解不平衡问题的严重性
2.5 到底该怎么应对?一个简要框架
我先给你一个宏观路线图,后面章节会一个个拆解。这个框架是我在做化学信息学项目时,自己沉淀出来的三个层级方案。
2.6 小结:别忽视不平衡,也别被它吓住
类别不平衡不是bug,它是蛋白-配体数据的天然属性。你没法绕过它,但可以在理解它之后,从容应对。记住三个要点:
- 定义很直接: 正样本远少于负样本,IR >= 10就值得警惕
- 影响很隐蔽: 模型变复读机、概率偏移、梯度稀释,三种“慢性病”
- 场景很现实: 活性筛选和非活性筛选在虚拟筛选里几乎是永恒的不平衡冲突