如果 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 不支持连续