我是从这个很棒的答案来到这里的。我遇到了许多使用交叉验证的方法,并且所附问题的答案是迄今为止对我来说最好的解释。我的困境是,现在我无法弄清楚使用 Kfold 交叉验证来做什么:-
- 测试过拟合?
- 超参数调优?
- 还有其他用例吗?
那也是怎么回事?我无法弄清楚如何处理 kfold cross val 之后的平均分数,如何处理折叠以及如何处理在 k-1 折叠训练数据上训练的模型?
我是从这个很棒的答案来到这里的。我遇到了许多使用交叉验证的方法,并且所附问题的答案是迄今为止对我来说最好的解释。我的困境是,现在我无法弄清楚使用 Kfold 交叉验证来做什么:-
那也是怎么回事?我无法弄清楚如何处理 kfold cross val 之后的平均分数,如何处理折叠以及如何处理在 k-1 折叠训练数据上训练的模型?
回答“做什么”这一点,如果您使用 scikit-learn GridSearchCV 类(来自 sklearn.model_selection),您可以从中获得以下信息:
我已经看到了一些对整个训练集进行“手动”重新训练的来源,但这不是必需的,因为 scikit-learn 已经让您访问整个训练集上的改装模型 :)
交叉验证基本上用于超参数调整。
您在 kfold 交叉验证上训练一组模型超参数设置,并将 kfold 交叉验证的平均分数作为每个模型超参数设置的近似性能。然后,得分最高的模型超参数设置将成为您的模型设置的选择。这种超参数设置可以被视为您可以从这种模型中获得的最佳值。
稍后,您可以使用此模型设置来测试测试数据集的一般性能。