GridSearchCV & RandomizedSearchCV - 你在 运行 之后改装模型了吗

GridSearchCV & RandomizedSearchCV - do you refit the model after running

我有一些测试和训练数据,测试数据没有任何因变量。

我目前正在 运行 GridSearchCV 或 RandomizedSearchCV 寻找最佳参数。

我是否应该将所有 "test" X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中?

我知道它会进行交叉验证,所以我相信它可以吗?

但如果是这样的话,best_estimator拟合的是什么数据呢?所有的?或者其中一个折叠的数据?

之后是否需要重新拟合全套测试数据?

这里问的问题比较多,我会尽量一一解答。

  1. Should I pass all of my "test" X & y values into a GridSearchCV or RandomizedSearchCV?

您提到您没有测试数据的因变量,在这种情况下,您无法将其传递给您的模型。即使您有权访问因变量的值,您也不应将它们发送到您的 GridSearchCVRandomSearchCV,这些方法将在内部创建一个验证集,您的模型将在该验证集上针对每个超参数设置进行测试。

  1. what data has the best_estimator been fit with?

这取决于您如何初始化 GridSearchCVRandomizedSearchCV 对象,这两种方法都有一个名为 refit 的参数,当设置为 TRUE(默认情况下) 将用整个数据重新拟合模型。

  1. Do I need to refit the full set of test data after?

通常,您不会使用测试数据来调整超参数。你使用验证集来做,一旦你冻结了你的模型,你就可以使用测试集来检查模型的性能,这将是对模型性能的无偏估计。

希望对您有所帮助!

没有什么能阻止您使用 test 数据集来为您的模型找到最佳超参数。但是,这样做之后,您无法真正判断模型的泛化能力如何,即对未见数据的表现,因为您使用 test 集来调整模型,使其无法用于衡量模型的性能。

此外,我认为 Cross Validated 是提出此类问题的更好场所。