使用 GridSearchCV 时需要拆分数据吗?
Do I need to split data when using GridSearchCV?
Gridsearhcv 使用 StratifiedKFold 或 KFold。所以我的问题是,我应该在使用网格搜索之前将我的数据分成训练和测试,然后只对测试数据进行拟合吗?我不确定是否有必要,因为 cv 方法已经拆分了数据,但我已经看到了一些预先拆分数据的示例。
谢谢。
GridSearchCV 将获取您提供的数据,将其拆分为训练集和 CV 集,并训练算法使用 CV 集搜索最佳超参数。您可以根据需要指定不同的拆分策略(例如拆分比例)。
但是当您执行超参数调整时,有关数据集的信息仍然 'leaks' 到算法中。
因此我建议采取以下方法:
1) 拿你的原始数据集,拿出一些数据作为测试集(比如,10%)
2) 对剩余的 90% 使用网格搜索。拆分将由此处的算法为您完成。
3) 获得最佳超参数后,在 #1 的测试集上对其进行测试,以获得对新数据的预期性能的最终估计。
Gridsearhcv 使用 StratifiedKFold 或 KFold。所以我的问题是,我应该在使用网格搜索之前将我的数据分成训练和测试,然后只对测试数据进行拟合吗?我不确定是否有必要,因为 cv 方法已经拆分了数据,但我已经看到了一些预先拆分数据的示例。
谢谢。
GridSearchCV 将获取您提供的数据,将其拆分为训练集和 CV 集,并训练算法使用 CV 集搜索最佳超参数。您可以根据需要指定不同的拆分策略(例如拆分比例)。
但是当您执行超参数调整时,有关数据集的信息仍然 'leaks' 到算法中。
因此我建议采取以下方法:
1) 拿你的原始数据集,拿出一些数据作为测试集(比如,10%)
2) 对剩余的 90% 使用网格搜索。拆分将由此处的算法为您完成。
3) 获得最佳超参数后,在 #1 的测试集上对其进行测试,以获得对新数据的预期性能的最终估计。