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

GridSearchCV中grid.score()与grid.best_score_的区别及取值疑问

GridSearchCV中best_score_与score()方法返回值的差异说明

核心定义区别

  • grid.best_score_:是交叉验证过程中,最优参数对应的3折验证得分的平均值。计算这个值用到的数据集是你传入GridSearchCV的X_train2, y_train2,由GridSearchCV内部做3折拆分得到的验证集,全程没有接触过你单独拆分的X_valid数据集,这个值是整个param_grid搜索范围内,所有参数组合里交叉验证得分最高的结果,和grid.best_params_直接对应。
  • grid.score(X_valid, y_valid):是GridSearchCV完成拟合后,调用内置的最优模型(即用best_params_在全部X_train2, y_train2上重新训练得到的模型),在你手动拆分的独立验证集X_valid上计算得到的得分,计算过程和GridSearchCV内部的3折交叉验证完全无关。

得分不一致的原因

两个值的计算依赖完全不同的验证数据集:

best_score_的验证集是X_train2内部3折拆分出来的子集,score()的验证集是你单独从原始训练集中拆分出来的X_valid,二者的样本分布、样本量都存在差异,最终得分自然会不一样。

最优得分的选择标准

  • 若要评估给定param_grid搜索范围内,参数组合在交叉验证下的最优表现,以grid.best_score_为准,这个值是网格搜索筛选最优参数的核心依据。
  • 若要评估最优参数模型在未见过的独立数据集上的泛化能力,以grid.score(X_valid, y_valid)为准,这个值更贴近模型上线后的真实表现。
  • 最终的模型效果请以代码中在完全独立的X_test上计算得到的MSE为准,这是最客观的泛化能力评估结果。

额外注意

你最开始贴的示例代码中GridSearchCV的初始化写法是错误的,正确初始化不需要传入训练数据,训练数据是在fit()方法中传入的,你完整函数中的GridSearchCV写法是正确的,无需调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 07:45:03