数据泄漏与交叉验证 - SpiralKernel/bioinfo-wiki GitHub Wiki
数据泄漏与交叉验证
更新:2026-10-13;状态:可用;验证范围:文档核对;操作示例未在本机运行。
预测评估需要让测试数据保持独立,并在训练折内学习预处理和特征选择。
为什么测试分数可能虚高
预测任务想回答模型对未见数据的表现。若先用全部样本筛选与标签相关的基因,再划分训练集和测试集,测试标签已经参与特征选择;随后得到的高分不能当作独立评估。用全体数据拟合缺失值填补、标准化或PCA原理与实现也可能引入信息。
先确定独立单位再划分:同一供体的细胞、同一家系的个体或同一样本的重复测定,应根据预测目标放在同一分组内。若要推广到新医院或未来时间,可用按医院或时间留出的评估;随机划分回答的是不同问题。
一条可执行的设计顺序
保留最终测试集 → 在其余数据中交叉验证 → 每个训练折内部拟合填补、缩放和特征选择 → 对验证折只做变换与预测 → 选定参数后在训练数据重拟合 → 最后评估一次测试集。调参很多时可采用嵌套交叉验证,将模型选择与性能估计分开。
训练集用于拟合,验证集用于方法选择,测试集用于最后评估。交叉验证不是多次偷看测试集的许可;一次高分也不等于跨群体泛化成立。
怎样报告结果
先声明回归或分类目标及分组规则。类别不均衡时仅报准确率会掩盖问题,应结合适合任务的召回率、精确率、PR曲线或校准;连续性状可报告误差与相关性,并说明基线模型。算法比较必须使用相同划分,保留所有样本来源和排除规则。
练习可按官方文档复现“随机标签先筛特征也能得到虚高分”的反例;本页尚未运行该练习。深入:scikit-learn数据泄漏指南、交叉验证方法与分组说明。
连接基础算法与组学验证
模型复杂度和惩罚见正则化过拟合与模型选择,分类阈值、ROC/PR及校准见分类指标ROC与PR曲线。训练集拟合好、交叉验证表现好、独立队列复现和功能作用分别支持不同结论,见组学验证的层级与证据。
分组划分取决于部署问题:亲缘共享不自动等于泄漏,但不能把随机个体划分直接解释为新家系能力。已有实际对照见GS训练验证与数据泄漏及合成家系数据贯通GS。