预测模型过拟合怎么办?有哪些应对策略?

小董
阅读 51 0 收藏 0 2026-01-13 10:00:00

过拟合(Overfitting):指的是当一个模型在训练数据上表现很好,但在未见过的测试数据上表现较差的情况。这是因为模型在训练数据中学习到了数据中的噪声或随机变化,而不是真正的模式或趋势。过拟合的模型通常会在训练数据上表现非常复杂,可能包括太多的参数,以适应数据的每一个细微的变化,但这些细微的变化并不一定代表整体的趋势。因此,当应用到新数据时,这些模型的预测能力会大打折扣。

过拟合类型

1️⃣ 样本量不足(Sample size too small):特别是阳性事件数(EPV, Events Per Variable)太少。如果只有50个发生并发症的患者,却纳入了20个变量,模型很容易牵强附会。

2️⃣ 特征过多(Too many predictors):纳入了太多无关紧要的临床指标。

3️⃣ 模型太复杂:使用了深度学习或复杂的树模型,而数据量不足以支撑这种复杂度。

常见解决方法

图片数据层面:增加样本与质量

  • 增加样本量:这是最根本的解决办法。尽可能收集更多患者数据,特别是增加“阳性事件”的数量。

  • 遵守EPV原则:传统建议是EPV>10(即每纳入1个自变量,至少需要10个阳性结局事件)。现代研究认为这可以放宽,但EPV越低,过拟合风险越高。

图片变量筛选:

  • 临床先验知识筛选:根据医学文献和专家意见,只保留具有明确生物学意义的变量。

  • 单因素分析筛选:先做单因素回归,P值小于一定阈值(如0.1或0.2,不仅限于0.05)再纳入多因素。

  • 自动化筛选算法:①LASSO回归(最推荐):它可以将无关变量的系数压缩为0,自动完成变量筛选和正则化。②逐步回归(Stepwise selection):虽然常用,但容易产生偏倚,需谨慎使用。随机森林的特征重要性排序。

图片正则化(Regularization):这是在数学上惩罚模型复杂度的方法,强迫模型“简单化”。

  • L1正则化(Lasso):通过加入系数绝对值之和作为惩罚项,让不重要的变量系数变为0。

  • L2正则化(Ridge, 岭回归):通过加入系数平方和作为惩罚项,让变量系数变小,但不为0(防止某个变量独大)。

  • Elastic Net:结合了L1和L2的优点。

注:Logistic回归和Cox回归都可以加上Lasso或Ridge惩罚项。

图片训练过程层面:交叉验证(Cross-Validation)不要仅仅依靠一次简单的“7:3”拆分。

  • k折交叉验证(k-fold CV):常用的有5折或10折交叉验证。将数据分成k份,轮流用其中k-1份训练,剩下一份验证。最终取平均性能。这能更客观地评估模型,防止恰好切分到“好”的数据集。

  • Bootstrap(自助法):在小样本研究中非常推荐。通过有放回的重复抽样(通常1000次)来评估模型的内部验证性能,并计算乐观值(Optimism),从而对模型的AUC进行校正。

图片对于复杂模型(如机器学习/深度学习)早停法(Early Stopping):在训练过程中,一旦发现验证集的误差开始上升,就立即停止训练,防止模型过度拟合训练数据。

  • Dropout:在神经网络中随机“关掉”一部分神经元,防止神经元之间过度依赖。

  • 剪枝(Pruning):对于决策树模型,剪掉过于细枝末节的分支。

文献示例

文献1:

标题:Relationship between atherogenic index of plasma and length of stay in critically ill patients with atherosclerotic cardiovascular disease: a retrospective cohort study and predictive modeling based on machine learning

控制过拟合方法:

  • 为控制多假设检验导致的假阳性风险,该研究采用了Bonferroni校正方法;

  • 变量的选择由lasso回归和Boruta算法结果的交叉决定;

  • 患者被随机分配到两组,80%分配给训练组,剩余20%分配给测试组;

  • 防止了模型过拟合,例如使用五重交叉验证、在交叉验证中使用独立验证集(不涉及模型训练和调优),以及使用多指标评估模型以确保其具有良好的泛化能力。

文献2:

标题:Early prediction of sepsis associated encephalopathy in elderly ICU patients using machine learning models: a retrospective study based on the MIMIC-IV database

控制过拟合方法:

  • 使用Bootstrap抽样技术以7:3的比例将数据集分为训练集和测试集。Bootstrap方法是一种强大且灵活的统计推理和模型评估工具。Bootstrap通过重复抽样生成大量样本数据,这有助于平衡样本分布的差异,并能够对模型组和对照组的抽样分布进行全面建模,从而有助于评估组之间的差异或关系;

  • 逻辑回归和机器学习模型中使用的最终特征变量是根据验证集使用LASSO回归和Boruta方法选择的。LASSO方法通过缩小系数、保留贡献较大的特征和消除冗余特征来选择特征并降低维数。Boruta算法通过将每个特征的Z值与“阴影特征”的Z值进行比较来识别最重要的特征。选择两种方法识别的公共特征变量作为模型的最终特征集;

  • 使用10倍交叉验证重新验证了它们的泛化能力和鲁棒性,以防止过度拟合。

文献3:

标题:A machine learning model for robust prediction of sepsis-induced coagulopathy in critically ill patients with sepsis

控制过拟合方法:

  • 模型构建时的特征选择。首先对所有包含的变量进行了单变量逻辑特征选择,随后进行了多变量逻辑特征选择;

  • 评估过程采用10折交叉验证;

  • MIMIC-IV数据库随机分配,70%用于培训,30%用于内部验证,而内蒙古人民医院则用于外部验证。

如果你正在做一个临床预测模型,建议遵循以下抗过拟合路径:

1.起步:首先检查EPV(事件数/变量数)。如果EPV<10,必须极度谨慎。

2.筛选:优先结合临床意义+LASSO回归来筛选变量。

3.建模:如果是回归模型,考虑使用带惩罚项的回归(Penalized Regression)。

4.验证:小样本首选Bootstrap验证;中大样本使用5折或10折交叉验证。

5.报告:在论文中诚实地报告训练集和验证集的差异,并讨论潜在的过拟合风险。

通过这些方法,你可以构建出一个不仅在你的数据集上有效,而且在真实临床环境中也能可靠应用的模型。


评论列表

发表评论