GridSearchCV和RandomizedSearchCV-运行后是否重新拟合模型

时间:2019-11-16 15:26:45

标签: python machine-learning scikit-learn cross-validation gridsearchcv

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

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

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

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

但是,如果是这种情况,best_estimator适合哪些数据?所有的?还是来自其中一项的数据?

之后我是否需要重新整整整套测试数据?

2 个答案:

答案 0 :(得分:1)

这里要问的问题很多,我将一一回答。

  
      
  1. 我应该将所有的“测试” X&y值都传递到GridSearchCV还是RandomizedSearchCV中?
  2.   

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

  
      
  1. best_estimator适合哪些数据?
  2.   

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

  
      
  1. 之后我是否需要重新整理整套测试数据?
  2.   

通常,您不会使用测试数据来调整超参数。您可以使用验证集进行操作,冻结模型后,可以使用测试集来检查模型的性能,这将是对模型性能的无偏估计。

希望这会有所帮助!

答案 1 :(得分:0)

没有什么可以阻止您使用test数据集来找到模型的最佳超参数。但是,执行完此操作后,您就无法真正分辨出模型的概括性,即对看不见的数据表现良好,因为您使用了test集来调整模型,从而使其无法用于衡量模型的性能。< / p>

我还相信Cross Validated是一个提出此类问题的好地方。