Kfold交叉验证和GridSearchCV

4

我正在尝试理解何时在算法的哪个阶段应用Kfold CV和GridSearchCV。如果我理解正确,GridSearchCV用于超参数调整,即确定参数值将提供最佳结果,而Kfold CV用于改善泛化,使我们像在不同的折叠上进行训练,从而减少偏差(如果数据按某种特定方式排序)并增加泛化能力。现在的问题是,GridSearchCV是否也使用CV参数进行交叉验证?那么为什么我们需要Kfold CV?如果我们需要,那么我们是在GridSearchCV之前还是之后进行呢?对此,简要概述过程将非常有帮助。

2个回答

3

GridSearchCVKFold更高级。前者使用后者(或其他类似的东西)。

KFold是相对低级的结构,它提供了一系列训练/测试索引。您可以使用这些索引来做很多事情,包括找到模型的OOB性能和/或调整超参数(基于OOB性能搜索超参数)。

GridSearchCV是一个更高级的结构,它通过其cv参数接受CV引擎(如KFold)。它使用CV引擎在超参数上进行搜索(在本例中,使用网格搜索)。


感谢您解释了这个区别。我还想问一个进一步的问题,因为gridsearchCV确实使用k-fold或其他类似的方法,并直接给出最佳参数值和与gridsearchCV获得的相同结果可以通过使用循环进行参数确定来获得给定泛化性能,所以这更像是一个二选一的情况,对吗?我的意思是我们可以使用其中任何一个,还是两者都必须使用? - Mr. Confused
2
非常粗略地说,我也认为这是一个二选一的情况。一个例外是嵌套交叉验证,其中您会在管道上运行外部的“KFold”,该管道具有正在运行“GridSearchCV”的步骤,但即使在每个级别,您也只会运行其中之一。 - Ami Tavory

1
Grid Search 用于选择预测算法的最佳超参数组合(调整估计器的超参数),而 KFold 则提供训练/测试索引以将数据拆分为训练/测试集。它将数据集分成 k 个连续折叠(默认情况下不进行洗牌)。
每个折叠都被用作一次验证,而剩下的 k-1 个折叠则形成训练集。它被用于获得更好的预测准确度度量(我们可以将其用作模型拟合优度的代理)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接