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

如何解读GridSearchCV的mean_test_score与std_test_score

R²为负、分数波动大是否代表Keras模型存在底层问题?

核心结论

该现象不属于模型底层实现错误,是超参数配置不合理、部分组合下模型未收敛导致的正常结果,结合你给出的调参日志和数据集规模,具体原因和验证逻辑如下:

  • R²评分本身允许出现负值:按照R²的计算公式R² = 1 - 预测残差平方和 / 标签均值基线的残差平方和,只要模型预测效果比“直接预测所有样本标签的平均值”这个无脑基线还差,计算结果就会小于0,这是评分规则的设计逻辑,不是框架或代码报错。
  • 你的调参结果存在非常明确的收敛规律:所有epochs=10的参数组合R²全为负值,epochs=50的组合R²普遍在0附近波动,只有epochs=100的组合出现了稳定的正向高分,其中batch_size=20, epochs=100的组合R²达到0.858、交叉验证标准差仅0.007,收敛状态非常稳定,完全可以证明模型本身的学习能力是正常的。
  • 你的参数网格存在书写错误:日志第二行的参数字典{'batch_size': 5, batch_size': 10, 'epochs': 100}存在重复键、键名缺失引号的语法问题,第一行的参数{'batch_size': 5,}甚至缺失epochs配置,说明传入GridSearchCV的参数网格构造有误,部分组合实际调用了框架默认的训练轮次,进一步放大了分数差异。
  • 数据集规模不存在适配问题:9073条训练样本、5个特征的回归任务,用普通全连接网络训练完全足够,不存在数据量过小导致模型无法学习的问题。

优化方向

  • 首先修正param_grid的语法错误,确保每个超参数组合的键值对格式正确,无重复键、缺漏参数、符号错误问题,保证调参流程本身的有效性。
  • 调整超参数搜索范围:适当提高epochs的搜索上限(比如新增150、200轮的档位),针对更大的batch_size配置对应更高的训练轮次——batch_size越大,单轮训练的梯度更新步数越少,需要更多轮次才能收敛,你当前日志里batch_size≥80时哪怕epochs=100分数仍接近0,就是训练轮次和batch_size不匹配导致的。
  • 给模型训练、权重初始化、数据拆分环节固定随机种子,减少随机波动对交叉验证分数的干扰,让不同参数组合的结果更有可比性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:06:29