GridSearchCV 真的使用了 StratifiedKFold 吗?

Posted

技术标签:

【中文标题】GridSearchCV 真的使用了 StratifiedKFold 吗?【英文标题】:Was StratifiedKFold really used by GridSearchCV? 【发布时间】:2020-05-13 19:38:43 【问题描述】:

使用 GridSearchCV 后,有什么方法可以查明是否真的使用了 StratifiedKFold 而不是 KFold?

作为估算器,我使用了 cv=10 的 SVC(支持向量机)。

我知道文档(scikit-learn 版本 0.21.3)说在这种情况下实际上使用了 StratifiedKFold。但是,我怀疑情况可能并非如此。

非常感谢您的帮助。

【问题讨论】:

【参考方案1】:

如果您不确定,您可以随时进入 github repo 并阅读代码。 Take a look here,定义函数的地方。

另外,正是在这个line 你有你的答案。是的。

【讨论】:

我忘了提到我将包含 GridSearchCV 实例的结果保存为 pickle 文件。有没有办法通过访问这个文件来查明 StratifiedKFold 是否真的被使用了? 嗯我不太明白你的意思,但为了进行比较,尝试执行两次执行,cv=None 和另一个 cv=5。如果结果相同,则表示您始终使用 KFold 类(cv=5 表示 sklearn 库应使用 stratifiedkfold)。

以上是关于GridSearchCV 真的使用了 StratifiedKFold 吗?的主要内容,如果未能解决你的问题,请参考以下文章

使用 GridSearchCV 但不使用 GridSearchCV 时出错 - Python 3.6.7

尝试使用 Gridsearchcv 时出现内存错误

使用 GridSearchCV 进行超参数调整

GridSearchCV 处理的出口与评分值连接

如何从 gridSearchCV 的输出中获取特征名称

GridSearchCV