我有一些测试和训练数据,测试数据没有任何因变量。
我目前正在运行 GridSearchCV 或 RandomizedSearchCV 来查找最佳参数。
我应该将所有“测试” X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中吗?
我知道它会进行交叉验证,所以我相信它可以吗?
但如果是这种情况,best_estimator 适合哪些数据?所有的?或者来自其中一个折叠的数据?
之后我需要重新拟合全套测试数据吗?
我有一些测试和训练数据,测试数据没有任何因变量。
我目前正在运行 GridSearchCV 或 RandomizedSearchCV 来查找最佳参数。
我应该将所有“测试” X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中吗?
我知道它会进行交叉验证,所以我相信它可以吗?
但如果是这种情况,best_estimator 适合哪些数据?所有的?或者来自其中一个折叠的数据?
之后我需要重新拟合全套测试数据吗?
这里有很多问题被问到,我会尝试一一回答。
- 我应该将所有“测试”X 和 y 值传递到 GridSearchCV 或 RandomizedSearchCV 中吗?
您提到您的测试数据没有因变量,在这种情况下,您无法将其传递给您的模型。即使您可以访问因变量的值,您也不应该将它们发送到您的GridSearchCV
or RandomSearchCV
,这些方法将在内部创建一个验证集,您的模型将在该验证集上针对每个超参数设置进行测试。
- best_estimator 适合哪些数据?
这取决于您如何初始化您的GridSearchCV
或RandomizedSearchCV
对象,这两种方法都有一个名为的参数refit
,当设置为TRUE
(默认情况下)将使用整个数据重新拟合模型。
- 之后我需要重新拟合全套测试数据吗?
通常,您不会使用测试数据来调整超参数。你使用验证集来做这件事,一旦你冻结了你的模型,你就可以使用测试集来检查模型的性能,这将是对模型性能的无偏估计。
希望这可以帮助!
没有什么可以阻止您使用test
数据集为模型找到最佳超参数。但是,在这样做之后,您无法真正判断模型的泛化程度,即在看不见的数据上的表现,因为您使用该test
集合来调整模型,使其无法测量模型的性能。
此外,我相信Cross Validated将是提出此类问题的更好场所。