对网格搜索中的所有组合使用交叉验证

Posted

技术标签:

【中文标题】对网格搜索中的所有组合使用交叉验证【英文标题】:Using cross validation on all combinations in grid search 【发布时间】:2017-04-03 19:46:15 【问题描述】:

我正在使用支持向量机对一些数据进行分类。我已将数据拆分为训练集和验证集,并使用 GridSearchCV 使用不同的超参数进行训练并找到最佳的。现在,我想在训练集和验证集上打印所有这些的结果。训练集很简单,因为 GridSearchCV 有一个名为 grid_scores_ 的属性(我使用的是 scikit-learn 版本 1.17.1),我可以打印它以获得训练集上的所有结果。但是,我希望能够打印相同的内容,但要针对我的验证集。我可以通过写作得到最好的结果

print(clf.score(X_test, y_test))

我希望我能得到这个,但对于所有的组合,不仅仅是最好的。这可能吗?

【问题讨论】:

【参考方案1】:

是的,你可以。您可以在GridSearchCV 中设置一个名为verbose 的参数。它控制控制台中显示的消息的详细程度

verbose 是一个整数:越高,消息越多。例如,如果您设置verbose = 3,您将获得交叉验证的参数和每个组合的分数

您可以为此参数尝试不同的值。

希望这有帮助!

【讨论】:

以上是关于对网格搜索中的所有组合使用交叉验证的主要内容,如果未能解决你的问题,请参考以下文章

我是不是需要同时执行网格搜索(使用交叉验证)和交叉验证方法?

在 scikit learn 中结合网格搜索和交叉验证

网格搜索中的交叉验证非常慢(libsvm)

交叉验证与网格搜索

Scikit learn 中的交叉验证与网格搜索

libsvm交叉验证与网格搜索(参数选择)