【发布时间】:2018-09-02 11:50:18
【问题描述】:
如果我在 scikit-learn 库中使用 GridSearchCV 来找到最佳模型,它返回的最终模型是什么?也就是说,对于每组超参数,我们训练 CV(比如 3 个)模型的数量。这样,该函数是否会返回这 3 个模型中的最佳模型以实现最佳参数设置?
【问题讨论】:
标签: python machine-learning scikit-learn
如果我在 scikit-learn 库中使用 GridSearchCV 来找到最佳模型,它返回的最终模型是什么?也就是说,对于每组超参数,我们训练 CV(比如 3 个)模型的数量。这样,该函数是否会返回这 3 个模型中的最佳模型以实现最佳参数设置?
【问题讨论】:
标签: python machine-learning scikit-learn
GridSearchCV 将返回一个包含大量信息的对象。它确实会返回在遗漏数据上表现最佳的模型:
best_estimator_:估计器或字典
搜索选择的估计器,即给出的估计器 遗漏数据的最高分(或最小损失,如果指定)。 如果 refit=False,则不可用。
请注意,这不是针对整个数据进行训练的模型。这意味着,一旦您确信这是您想要的模型,您将需要自己根据整个数据重新训练模型。
参考:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
【讨论】:
refit=False,您不必重新训练模型。 GridSearchCV 将为您执行此步骤,并像往常一样通过.predict 和.score 公开最终训练的模型。见datascience.stackexchange.com/questions/45810/…
这是在 sklearn 中给出的:
“重新调整的估计器在 best_estimator_ 属性中可用,并允许直接在此 GridSearchCV 实例上使用预测。”
因此,您无需再次拟合模型。可以直接从 best_estimator_ 属性中得到最好的模型
【讨论】: