You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何交叉验证效果始终优于训练集-测试集拆分?是否过拟合如何调参

问题判断

你遇到的情况属于典型的过拟合:模型在训练集内部拆分的交叉验证子集上表现优异,但完全无法泛化到独立的未知测试集。
同时从测试集precision、recall仅0.5左右的表现来看,还可以优先排查两个前置问题:

  • 原始数据集存在类别偏斜,少数类样本占比极低
  • train_test_split拆分时未做分层抽样,导致训练集、测试集的类别分布差异较大,进一步放大了泛化误差

可调整的随机森林超参数与优化方案

  • 限制单棵决策树的复杂度(直接降低过拟合风险)
    • 减小max_depth:默认无上限,可下调到3-12区间,避免树生长过深学习到训练集噪声
    • 减小max_features:默认是特征总数的平方根,可下调到0.2-0.5区间,降低节点分裂时的特征选择自由度
    • 增大min_samples_split:默认值为2,可上调到5-20区间,要求节点必须包含足够多样本才允许分裂
    • 增大min_samples_leaf:默认值为1,可上调到2-10区间,要求叶节点必须包含足够多样本
  • 优化森林整体结构
    • 适当增大n_estimators:默认值为100,可上调到200-1000区间,更多的树可以抵消单棵树过拟合带来的整体方差
    • 增加ccp_alpha参数:默认值为0,可从0.001开始逐步上调,启用成本复杂度剪枝,参数越大剪枝力度越强
  • 流程优化
    • 修改train_test_split参数,增加stratify=y做分层抽样,保证训练集、测试集的类别分布和原始数据集一致
    • 若确认存在类别不平衡,初始化RandomForestClassifier时增加class_weight='balanced'参数,自动调整类别权重
    • 不要直接使用默认参数训练,用GridSearchCV或RandomizedSearchCV基于交叉验证的结果搜索最优超参数组合,再用最优组合训练最终模型

内容的提问来源于stack exchange,提问作者Roz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:45:02