machine-learning - 如果每次迭代都抛弃模型,交叉验证的目的是什么
问题描述
在交叉验证中,比方说 k 折,每次迭代我们基本上从头开始创建新模型——我们扔掉之前评分的模型并基于不同的训练集创建一个新模型。
众所周知,模型的优势在于它所训练的数据(当然还有它的超参数)。
所以我的问题是——如果模型一直在变化,那么评分的意义何在?
在交叉验证之后,我们不取模型值的平均值......只是计算不再存在的模型分数的平均值。我显然错过了一些东西,但除了选择超参数和 maby 来指示最适合的模型(从非常高的角度来看) - 我看不到交叉验证的好处。
解决方案
您进行交叉验证以估计您的模型在看不见的数据上的表现。关键是看它的概括性如何。
一旦你完成了交叉验证并对你的分数感到满意,你就可以在你的整个训练集上重新训练,然后看看它在你的测试集上的表现如何。如果您的测试集来自与您的训练集相似的分布,并且您正确地进行了交叉验证,您应该得到相似的分数。
你不能从一开始就使用测试集的原因是你应该只使用一次测试集 - 如果你对你的测试集分数不满意,你不能回去重新训练,否则你会冒险过拟合。
推荐阅读
- microsoft-graph-api - 从 Microsoft Graph Api 获取 400 错误请求以获取 SchemaExtensions
- node.js - 无法使用 node.js 和 mongodb 以同步方式调用函数
- html - 如果我在父 div 上使用“转换”,则混合混合模式不起作用
- r - 如何通过合并 R 中不同数据框中具有相同名称的列来创建新数据框?
- python - Keras 功能 API 从带有 LSTM 层的 Keras Sequential API 产生不同的结果
- android - 在 okhttp3 中的请求之间创建一秒延迟
- c# - 如何编写一个程序,将平均成绩计算为双值,并在消息框中显示成绩?
- flutter - 向 FlutterToast 添加前导图标
- html - CKeditor 不允许 html 图标标签
- python - 如何使用 sql python 过滤数据的变量列表?