如果 GridSearchCV 给出了一些排名为 1 的估计器,它将选择哪一个作为最佳估计器?

Posted

技术标签:

【中文标题】如果 GridSearchCV 给出了一些排名为 1 的估计器,它将选择哪一个作为最佳估计器?【英文标题】:If GridSearchCV gives a few estimators with rank 1, which one will it pick as the best estimator? 【发布时间】:2020-09-19 18:21:29 【问题描述】:

使用 Scikit-learn 的 GridSearchCV,如果 GridSearchCV 给出了一些排名为 1 的估计器,它会选择哪个作为最佳估计器best_estimator_?它会选择cv_results_ 中出现的列表中的第一个估算器吗?

除非我失明,否则我似乎无法在此处的文档中找到此内容:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

非常感谢。

【问题讨论】:

【参考方案1】:

是的,它(当前)选择cv_results_ 中的第一个。从 the source 开始,它只需要 argmin,根据 the numpy docs 选择第一个索引以防平局。

(似乎没有任何理由更喜欢它,所以它似乎相对有可能发生变化。特别是,使用最低标准差或训练分数或时间或......实施决胜局似乎是值得的。)

作为一个快速实验,使用无意义的(为了性能)超参数:

search = GridSearchCV(estimator=LogisticRegression(),
                      param_grid='verbose': [0, 1, 2])
search.fit(X, y)
print(search.cv_results_, search.best_params_)

【讨论】:

以上是关于如果 GridSearchCV 给出了一些排名为 1 的估计器,它将选择哪一个作为最佳估计器?的主要内容,如果未能解决你的问题,请参考以下文章

与 xgboost.cv 相比,GridSearchCV 没有给出与预期相同的结果

为啥在逻辑回归中对 roc_auc 进行评分时,GridSearchCV 不给出具有最高 AUC 的 C

为啥 GridSearchCV 没有给出最好的分数? - Scikit 学习

GridSearchCV 给出 ValueError:DecisionTreeRegressor 不支持连续

GridSearchCV 打分参数:使用打分='f1' 或打分=无(默认使用准确度)给出相同的结果

GridSearchCV