如何公平对比基线模型与GridSearchCV调优模型的结果?
问题1:两个得分不具备可比性,直接对比完全不公平
你当前的两个得分计算逻辑完全不在同一基准上:
- 基线模型的准确率是训练集上的自评分:模型已经见过全量
X_train的所有样本,相当于开卷考试得分,天然会偏高,无法代表模型的真实泛化能力,甚至可能因为模型过拟合训练数据导致得分虚高。 GridSearchCV的best_score_是交叉验证的验证集平均得分:是在5折拆分的、模型训练时从未见过的验证样本上计算的得分,是对模型泛化能力的客观评估,天然会比训练集自评分更低。
拿这两个得分直接对比,相当于拿开卷考试的分数和闭卷考试的分数比,没有任何参考意义。
另外你贴的GridSearchCV代码存在参数错位问题,修正后正确写法如下:
# 原代码把scoring、cv参数错写到LogisticRegression的入参里了,修正后: best_model = GridSearchCV(LogisticRegression(), param_grid=parameters, scoring='accuracy', cv=cv)
问题2:基线模型的评估流程必须和调优模型的评估流程完全对齐,才具备可比性
你可以选择两种标准对比方案:
方案1:调参阶段的公平对比
和你当前的GridSearchCV流程完全对齐:
- 基线模型同样只用拆分后的
X_val训练,用同样的StratifiedKFold做5折交叉验证,计算平均验证准确率,和best_score_对比 - 或者两个模型都在你留出的
X_test_val集上计算准确率,这个集两者训练时都没见过,得分对比更准确
方案2:最终模型效果对比
如果已经通过GridSearchCV选到了最优参数,要对比最终上线的模型效果:
- 用最优参数初始化模型,在全量
X_train上重新训练 - 基线模型也在全量
X_train上训练 - 两个模型都在完全独立的、从未参与过训练/调参的外部测试集上计算准确率,这个对比结果就是最终的调优收益
内容的提问来源于stack exchange,提问作者Lisbeth
相关产品推荐
相关产品推荐

