哪个模型:gridsearchCV或所有训练数据的最佳估计量?

时间:2018-10-28 11:19:27

标签: scikit-learn grid-search

在进行网格搜索和拟合最终模型时,我有些困惑。我将其分为2部分:培训和测试。测试集仅用于最终评估。我仅使用训练数据执行网格搜索。

说一个人使用交叉验证对几个超参数进行了网格搜索。网格搜索可提供超参数的最佳组合。下一步是训练模型,这让我感到困惑。我看到2种可能性:

1)不要训练模型。使用来自网格搜索的最佳模型中的参数。

2)不要使用来自网格搜索的最佳模型的参数。在具有网格搜索中最佳超参数组合的完整训练集上训练模型。

正确的方法是1还是2?

2 个答案:

答案 0 :(得分:1)

这可能已经晚了,但可能对其他人有用。

GridSearchCV具有一个名为refit的属性,默认情况下将其设置为True。这意味着在执行k倍交叉验证(即,对传入数据的子集进行训练)后,它会使用网格搜索中的最佳超参数对完整的训练集重新拟合模型。

据我所知,您的问题大概可以概括为:

假设您使用5倍交叉验证。然后将您的模型仅进行4折拟合,因为第五折用于验证。因此,您是否需要在整个火车上重新训练模型(即所有5折的数据)?

答案是否定的,只要您将refit设置为True,在这种情况下GridSearchCV将使用其找到的最佳超参数对整个训练集进行训练交叉验证。然后它将返回经过训练的估计器对象,您可以像通常那样直接在其上调用predict方法。

引用:https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

答案 1 :(得分:-1)

您使用训练集和GridSearch获得的参数训练模型。

然后您可以使用测试集测试模型。