KJA*_*KJA 2 scikit-learn grid-search
当涉及到网格搜索和拟合最终模型时,我有点困惑。我将其一分为二:训练和测试。测试集仅用于最终评估。我只使用训练数据执行网格搜索。
假设有人使用交叉验证对多个超参数进行了网格搜索。网格搜索提供了超参数的最佳组合。下一步是训练模型,这就是我感到困惑的地方。我看到两种可能性:
1)不要训练模型。使用网格搜索中最佳模型的参数。
或者
2)不要使用网格搜索中最佳模型的参数。使用网格搜索中的最佳超参数组合在完整训练集上训练模型。
什么是正确的方法,1 或 2?
小智 5
这可能晚了,但可能对其他人有用。
GridSearchCV有一个名为 的属性refit,True默认情况下设置为。这意味着在执行 k 折交叉验证(即对您传入的数据子集进行训练)之后,它会使用网格搜索中的最佳超参数在完整的训练集上重新拟合模型。
据我所知,你的问题大概可以概括为:
假设您使用 5 折交叉验证。然后您的模型只适合 4 折,因为第五折用于验证。那么您是否需要在整个火车上重新训练模型(即所有 5 折的数据)?
答案是否定的,前提是您设置refit为True,在这种情况下,GridSearchCV将使用交叉验证后找到的最佳超参数对整个训练集执行训练。然后它将返回经过训练的 estimator 对象,您可以在该对象上直接调用该predict方法,您通常会这样做。
参考:https : //scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |