使用 GridSearchCV 时需要拆分数据吗?

Do I need to split data when using GridSearchCV?

Gridsearhcv 使用 StratifiedKFold 或 KFold。所以我的问题是,我应该在使用网格搜索之前将我的数据分成训练和测试,然后只对测试数据进行拟合吗?我不确定是否有必要,因为 cv 方法已经拆分了数据,但我已经看到了一些预先拆分数据的示例。

谢谢。

GridSearchCV 将获取您提供的数据,将其拆分为训练集和 CV 集,并训练算法使用 CV 集搜索最佳超参数。您可以根据需要指定不同的拆分策略(例如拆分比例)。

但是当您执行超参数调整时,有关数据集的信息仍然 'leaks' 到算法中。

因此我建议采取以下方法:

1) 拿你的原始数据集,拿出一些数据作为测试集(比如,10%)

2) 对剩余的 90% 使用网格搜索。拆分将由此处的算法为您完成。

3) 获得最佳超参数后,在 #1 的测试集上对其进行测试,以获得对新数据的预期性能的最终估计。