如何将训练和测试作为不同的数据集来执行 GridSearchCV?

How to do GridSearchCV with train and test being different datasets?

我想找到 RandomForest 分类器(使用 scikit-learn)的最佳参数,以便它可以很好地推广到其他数据集(可能不是 iid)。 我在考虑使用整个训练数据集进行网格搜索,同时评估其他数据集上的评分函数。 在 python/scikit-learn 中可以轻松做到这一点吗?

我认为您无法在不同的数据集上进行评估。 GridSearchCV 背后的整个想法是,它将您的训练集分成 n 份,对其中的 n-1 份进行训练,并对剩余的一份进行评估,重复该过程,直到每一份都 "the odd one out"。这使您不必分开特定的验证集,您可以简单地使用训练集和测试集。

如果可以的话,可以简单的合并两个数据集,然后进行GridSearchCV,这样可以保证对另一个数据集的泛化能力。如果你在谈论对未来未知数据集的泛化,那么这可能行不通,因为没有一个完美的数据集可以用来训练一个完美的模型。