我有一些测试和训练数据,测试数据没有任何因变量。
我目前正在运行GridSearchCV或RandomizedSearchCV以查找最佳参数。
是否应该将所有“测试” X和y值传递到GridSearchCV或RandomizedSearchCV中?
我知道它会进行交叉验证,所以我相信它可以吗?
但是,如果是这种情况,best_estimator适合哪些数据?所有的?还是来自其中一项的数据?
之后我是否需要重新整整整套测试数据?
答案 0 :(得分:1)
这里要问的问题很多,我将一一回答。
- 我应该将所有的“测试” X&y值都传递到GridSearchCV还是RandomizedSearchCV中?
您提到您的测试数据没有因变量,在这种情况下,您无法将其传递给模型。即使您有权访问因变量的值,也不应将它们发送到GridSearchCV
或RandomSearchCV
,这些方法将在内部创建一个验证集,并在该验证集上针对每个超参数设置对模型进行测试。
- best_estimator适合哪些数据?
这取决于您如何初始化GridSearchCV
或RandomizedSearchCV
对象,这两个方法都有一个名为refit
的参数,将其设置为TRUE
(默认情况下)用整个数据重新拟合模型。
- 之后我是否需要重新整理整套测试数据?
通常,您不会使用测试数据来调整超参数。您可以使用验证集进行操作,冻结模型后,可以使用测试集来检查模型的性能,这将是对模型性能的无偏估计。
希望这会有所帮助!
答案 1 :(得分:0)
没有什么可以阻止您使用test
数据集来找到模型的最佳超参数。但是,执行完此操作后,您就无法真正分辨出模型的概括性,即对看不见的数据表现良好,因为您使用了test
集来调整模型,从而使其无法用于衡量模型的性能。< / p>
我还相信Cross Validated是一个提出此类问题的好地方。