machine-learning - K-Fold交叉验证的应用部署

标签 machine-learning scikit-learn cross-validation k-fold

K 折交叉验证是一种用于将数据分成 K 折以进行测试和训练的技术。目标是估计机器学习模型的普遍性。该模型被训练 K 次,在每个训练折叠上训练一次,然后在相应的测试折叠上进行测试。

假设我想在某个具有 10 折的任意数据集上比较决策树和逻辑回归模型。假设在 10 折中的每一个上训练每个模型并获得相应的测试精度后,Logistic 回归在测试折中具有更高的平均精度,表明它是数据集的更好模型。

现在,进行应用和部署。我是在所有数据上重新训练逻辑回归模型,还是从在 K 折上训练的 10 个逻辑回归模型创建一个整体?

最佳答案

CV 的主要目标是验证我们不是偶然得到这些数字。因此,我相信您可以只使用单一模型进行部署。

如果您已经对超参数和模型性能感到满意,一种选择是使用您拥有的所有数据进行训练并部署该模型。

而且,另一种选择很明显,您可以部署其中一个 CV 模型。

关于集成选项,我认为它不应该比在所有数据上训练的模型提供更好的结果;因为每个模型使用相似的参数训练相同的时间,并且它们具有相似的架构;但火车数据略有不同。所以,他们不应该表现出不同的表现。根据我的经验,当模型的输出因架构或输入数据(例如不同的图像大小)而不同时,集成会有所帮助。

关于machine-learning - K-Fold交叉验证的应用部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72319891/

相关文章:

tree - MCTS 处理 N 个玩家游戏的对手 Action

python - 无法加载 pickle 的自定义估算器 sklearn 管道

python - 用作索引的数组必须是整数(或 bool )类型

python - 在随机森林中寻找重要特征非常慢

python - 超参数调整

python - TensorFlow 对象检测 API 结果不佳

python - 控制 Scikit Learn 中逻辑回归的阈值

python - MAXent分类器NLTK输出理解

machine-learning - SVM - 数据的属性是否可以指示最佳参数(例如 C、gamma)

python - 如何嵌套LabelKFold?