4. 数据划分与泄漏控制
在蛋白突变效应预测中,模型在测试集上表现优异却在真实湿实验验证中大幅掉分,最常见的原因不是模型容量不足,而是数据划分方式引入了信息泄漏。所谓泄漏,是指训练集与测试集之间存在本应被隔离的相似性或依赖关系,使模型在评估阶段“偷看”了测试信息。本节围绕三种主流划分策略——同源划分、位置划分、突变类型划分——说明它们各自隔离什么、适用什么场景,以及工程评估中最容易踩的陷阱。
一、为什么随机划分几乎总是过于乐观
假设我们有一个包含 5000 条单点突变的数据集,覆盖 200 个同源蛋白。若直接按 8:2 随机切分,同一个蛋白的不同突变位点会同时出现在训练集和测试集里。模型只要记住“这个蛋白第 57 位附近偏好疏水残基”这类局部模式,就能在测试集上取得很高分数,但它并没有学到可迁移的突变效应规律。更隐蔽的是,同源蛋白之间序列相似度可达 40% 以上,随机划分会让近同源序列跨集分布,导致评估结果被同源冗余严重污染。
因此,划分策略的核心问题是:我们希望模型泛化到什么样的新数据上? 如果目标是预测全新蛋白上的突变,就必须按蛋白(或同源簇)划分;如果目标是预测同一蛋白上未测过的位点,就按位置划分;如果目标是预测训练中未出现的突变类型,就按突变类型划分。三者回答的是不同的泛化问题,不能混用。
二、同源划分:隔离进化冗余
同源划分(homology-based split)先对全部蛋白序列做聚类,常用 MMseqs2 或 CD-HIT,以序列一致性阈值(如 30%、50%)将序列归入同一簇,再以簇为单位整体划入训练、验证或测试集。这样可保证同一簇内的近同源序列不会跨集出现。
实际操作中,阈值选择直接影响难度:阈值越高(如 90%),簇更细,测试集仍可能包含与训练集中等相似的蛋白,评估偏乐观;阈值越低(如 25%),簇更粗,测试集与训练集差异更大,评估更严格,但可能因簇过大导致训练数据不足。工程上建议同时报告多个阈值下的结果,例如 30% 和 50% 两档,以观察性能随同源距离的变化趋势。
# 示例:用 MMseqs2 聚类后按簇划分(示意参数)
mmseqs easy-cluster sequences.fasta clusterRes tmp \
--min-seq-id 0.3 -c 0.8 --cov-mode 1
# 输出 clusterRes_cluster.tsv: 每行 repSeq \t memberSeq
# 再按 repSeq 分组,将整簇分配到 train/val/test
需要注意,同源划分只隔离了序列相似性,并不能隔离结构相似或功能相似但序列差异较大的蛋白。若数据集中存在大量同一蛋白家族的不同成员,仍可能残留功能层面的泄漏。
三、位置划分:隔离位点记忆
位置划分(position-based split)以残基位置为单位,将同一蛋白的不同位点分到不同集合。它适用于评估“模型能否预测同一蛋白上未测位点的突变效应”。实现时通常按位点编号分组,确保同一位点的所有突变只出现在一个集合中。
位置划分的风险在于:如果训练集包含某位点的邻近位点,而这两个位点在三维结构上空间相邻,模型可能通过空间耦合间接获得信息。因此,位置划分最好结合结构信息,将空间距离小于阈值(如 8 Å)的位点归入同一组,再整体划分。否则,评估结果会因空间泄漏而偏高。
四、突变类型划分:隔离替换偏好
突变类型划分(mutation-type split)按突变类型(如 A→V、G→D)或按氨基酸替换矩阵中的类别分组,将某些突变类型整体留作测试。它回答的是“模型能否泛化到训练中未见的替换类型”。例如,训练集只包含疏水→疏水突变,测试集包含疏水→带电突变,可检验模型对理化性质变化的推断能力。
这种划分对数据量要求较高,因为每种突变类型的样本数可能很少。若某类型样本不足,测试集方差会很大,指标不稳定。工程上可先统计各突变类型的样本分布,再决定是否合并稀有类型或采用分层抽样。
五、工程评估陷阱与操作建议
陷阱一:随机划分。 这是最普遍的问题。只要数据集中存在同一蛋白的多个突变,随机划分就会让模型记住蛋白身份。判断方法:比较随机划分与同源划分的指标差距,若差距超过 0.1(以 Spearman 相关系数计),说明泄漏显著。
陷阱二:预处理泄漏。 全局归一化、全局特征选择、全局缺失值填充都会把测试集信息带入训练。正确做法是:先划分,再在训练集上拟合归一化参数和特征选择器,然后应用到验证集和测试集。对于蛋白突变数据,常见的全局操作包括按数据集统计氨基酸频率、按全量数据做 PCA 降维等,都必须改为仅用训练集拟合。
陷阱三:重复样本。 同一突变可能来自多个数据库或多次实验,若不去重,同一记录会跨集出现。建议在划分前按“蛋白ID + 位点 + 突变后残基”三元组去重,并保留实验条件最完整的一条。
陷阱四:在测试集上调阈值。 很多工程流程会用测试集选择分类阈值或早停轮数,这等价于把测试集当验证集。正确做法是:训练集训练,验证集调参和选阈值,测试集只在最终评估时使用一次。
最后需要强调,三种划分策略并非互斥。实际工程中常采用组合策略:先按同源簇划分,再在簇内按位置分组,最后检查突变类型分布是否均衡。评估时至少报告两套结果——一套随机划分作为上界参考,一套严格划分作为真实泛化估计。两者差距越小,说明模型学到的规律越可迁移,越值得进入湿实验验证。