0

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

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

我应该将所有“测试” X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中吗?

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

但如果是这种情况,best_estimator 适合哪些数据?所有的?或者来自其中一个折叠的数据?

之后我需要重新拟合全套测试数据吗?

4

2 回答 2

1

这里有很多问题被问到,我会尝试一一回答。

  1. 我应该将所有“测试”X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中吗?

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

  1. best_estimator 适合哪些数据?

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

  1. 之后我需要重新拟合全套测试数据吗?

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

希望这可以帮助!

于 2019-11-16T18:17:33.853 回答
0

没有什么可以阻止您使用test数据集为模型找到最佳超参数。但是,在这样做之后,您无法真正判断模型的泛化程度,即在看不见的数据上的表现,因为您使用该test集合来调整模型,使其无法测量模型的性能。

此外,我相信Cross Validated将是提出此类问题的更好场所。

于 2019-11-16T18:28:12.177 回答