繁体   English   中英

了解机器学习的交叉验证

[英]Understanding Cross Validation for Machine learning

以下关于交叉验证的说法正确吗?:

训练数据被分成不同的组,除一个训练数据集外,所有训练数据集都用于训练 model。一旦训练了 model,“遗漏”的训练数据将用于执行超参数调整。 一旦选择了最佳超参数,测试数据将应用于 model 以给出结果,然后将其与经历过类似过程但具有不同训练数据集组合的其他模型进行比较。 然后选择在测试数据上具有最佳结果的 model。

在此处输入图像描述

我不认为这是正确的。 你写了:

一旦 model 被训练,“遗漏”训练数据用于执行超参数调整

您通过选择(手动或使用网格搜索或随机搜索等方法)一组模型的超参数(您设置值的参数,甚至在您将 model 拟合到数据之前)来调整 model。 然后,对于一组选定的超参数值,您可以使用交叉验证计算验证集误差。

所以它应该是这样的:

训练数据分为不同的组,除了一个训练数据集外,所有训练数据集都用于训练 model。一旦训练了 model,“遗漏”的训练数据用于...

...计算误差。 在交叉验证结束时,您将在 k 个遗漏集上计算出 k 个错误。 您接下来要做的是计算这 k 个错误的平均值,这会为您提供一个值 - 验证集错误。

如果你有 n 组超参数,你只需重复该过程 n 次,这会给你 n 个验证集错误。 然后你选择这个给你最小验证错误的集合。

最后,您通常会计算测试集误差以查看模型在未见数据上的性能如何,模拟将 model 投入生产并查看测试集误差和验证集误差之间是否存在差异。 如果存在显着差异,则意味着过拟合。

只是在交叉验证本身上添加一些东西,我们使用 k-CV 或 LOOCV 的原因是它是很好的测试集错误估计,这意味着当我使用超参数进行操作并且验证集错误的值下降时,我知道我真的改进了 model 而不是幸运,只是更好地使 model 适合训练集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM