我正在使用 XGBoost 模型对一些数据进行分类。我有 cv splits (train, val) 和一个单独的测试集,直到最后我才使用。
我已经使用 GridSearchCV 来确定最佳参数并将我的 cv 拆分(5 折)输入其中,并设置 refit=True 以便一旦它找出最佳超参数,它就会在完整数据上训练(所有折而不是只有 4 /5 折叠)并返回 best_estimator。然后我最后在我的测试集上测试这个最好的模型。
然后,我将此模型的结果与我自己单独训练的具有最佳超参数的模型进行比较,我自己的模型得到了更好的结果。这是为什么?
GridSearchCV 在使用最佳超参数对完整数据进行训练时是否仍使用交叉验证?GridSearchCV 是否正在做一些损害模型的额外事情?