开发者社区> 问答> 正文

拟合后,GridSearchCV是否返回best_estimator_?

假设我们使用GridSearch调整SVM,如下所示:

algorithm = SVM()
parameters = {'kernel': ['rbf', 'sigmoid'], 'C': [0.1, 1, 10]}

grid= GridSearchCV(algorithm, parameters)
grid.fit(X, y)

然后,您希望在中使用最佳拟合参数/估计量cross_val_score。我的问题是,grid此时是哪种模型?它是表现最好的一个吗?换句话说,我们可以做

cross_val_scores = cross_val_score(grid, X=X, y=y)

还是应该使用

cross_val_scores = cross_val_score(grid.best_estimator_, X=X, y=y)

当我同时运行这两个程序时,我发现它们返回的分数不同,所以我很好奇这里的正确方法。(我会假设使用best_estimator_。)但是,这又引发了一个问题,即:仅grid使用用作模型会产生什么?第一个?

展开
收起
几许相思几点泪 2019-12-29 20:18:20 2559 0
1 条回答
写回答
取消 提交回答
  • 根据GridSearchCV的资料,grid.predict与相同grid.best_estimator_.predict(即grid和grid.best_estimator_相同的模型)。

    注意,cross_val_scores 再次执行拟合,因此将其与对象一起使用并不是惯用的GridSearchCV。

    有两种选择:

    如果只有分数很重要,请使用cross_val_scores, 如果需要拟合模型,请使用GridSearchCV并从中提取分数grid.cv_results_['mean_test_score'](请参阅GridSearchCV docs)。 而且,由于模型拟合和CV分裂的随机性,同一轮拟合过程可能会得出不同的结果。

    2019-12-29 20:18:38
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载