我不清楚GridSearchCV中best_score_的含义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我不清楚GridSearchCV中best_score_的含义相关的知识,希望对你有一定的参考价值。

我进行了多个模型的实验,并为每个模型产生了最佳分数,以帮助我决定选择哪种模型作为最终模型。最佳成绩结果是使用以下代码生成的:

print(f'Ridge score is np.sqrt(ridge_grid_search.best_score_ * -1)')
print(f'Lasso score is np.sqrt(lasso_grid_search.best_score_ * -1)')
print(f'ElasticNet score is np.sqrt(ElasticNet_grid_search.best_score_ * -1)')
print(f'KRR score is np.sqrt(KRR_grid_search.best_score_ * -1)')
print(f'GradientBoosting score is np.sqrt(gradientBoost_grid_search.best_score_ * -1)')
print(f'XGBoosting score is np.sqrt(XGB_grid_search.best_score_ * -1)')
print(f'LGBoosting score is np.sqrt(LGB_grid_search.best_score_ * -1)')

结果发布在这里:

Ridge score is 0.11353489315048314
Lasso score is 0.11118171778462431
ElasticNet score is 0.11122236468840378
KRR score is 0.11322596291030147
GradientBoosting score is 0.11111049287476948
XGBoosting score is 0.11404604560959673
LGBoosting score is 0.11299104859531962

我不确定如何选择最佳模型。在这种情况下,XGBoosting是我最好的模型吗?

答案

但是您没有提供ridge_grid_search名称的代码,我想您正在使用sklearn.model_selection.GridSearchCV进行型号选择。 GridSearch应该用于调整单个模型的超参数,而不应该用于相互比较不同的模型。 sklearn.model_selection.GridSearchCV返回在给定算法的网格搜索过程中找到的最佳超参数所获得的最佳分数。

对于模型比较,您应该使用诸如ridge_grid_search.best_score_之类的交叉验证算法,在使用交叉验证时,请确保每个模型都在相同的训练/测试集上进行训练和测试,以进行公平比较。

以上是关于我不清楚GridSearchCV中best_score_的含义的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GridSearchCV 确定的最优参数

如果我使用 GridsearchCV,如何在 Xgboost 中使用 model.evals_result()?

使用来自 gridsearchcv 的最佳参数

如何在“GridSearchCV”中使用“log_loss”和 Scikit-Learn(sklearn)中的多类标签?

使用 GridSearchCV 时需要拆分数据吗? [关闭]

GridSearchCV 没有属性 best_estimator_