我对线性回归模型中的交叉验证有疑问。
根据我的理解,在交叉验证中,我们将数据分成(比方说)10倍,并训练9倍的数据和我们用于测试的剩余折叠。我们重复这个过程,直到我们测试所有的折叠,这样每个折叠都只测试一次。
当我们从9折训练模型时,我们是否应该得到不同的模型(可能与我们在使用整个数据集时创建的模型略有不同)?我知道我们平均所有的" n"性能。
但是,模型呢?不应该将得到的模型作为所有" n"的平均值。楷模?我看到生成的模型与我们在交叉验证之前使用整个数据集创建的模型相同。如果我们即使在交叉验证后也考虑整体模型(而不是平均所有模型),那么从n个不同的模型计算平均性能的重点是什么(因为它们是从不同的数据折叠和应该是不同的,对吗?)
如果我的问题不明确或太搞笑,我道歉。 谢谢你的阅读!
答案 0 :(得分:2)
我认为由于在所提出的问题中使用了“模型”一词,因此在提出的某些答案中存在一些混淆。如果我猜对了,你指的是在 K 折交叉验证中我们学习 K 不同的预测器(或决策函数),你称之为“模型”(这是一个坏主意,因为在机器学习中我们也进行模型选择,即在预测变量系列之间进行选择,这可以使用交叉验证来完成)。交叉验证通常用于超参数选择或在不同算法或不同预测器系列之间进行选择。一旦选择了这些,最常见的方法是从所有数据中重新学习具有所选超参数和算法的预测器。 但是,如果优化的损失函数相对于预测器是凸的,则可以简单地平均从每个折叠获得的不同预测器。 这是因为对于凸风险,预测变量的平均值的风险总是小于个体风险的平均值。
平均(vs 再训练)的优点和缺点如下 优点:(1)在每个折叠中,您对保留集所做的评估为您获得的那些预测因子提供了对风险的无偏估计,对于这些估计,不确定性的唯一来源是估计保留数据的经验风险(损失函数的平均值)。 这应该与重新训练时使用的逻辑形成对比,交叉验证风险是对“给定学习算法风险的预期值”(而不是给定预测器)的估计,以便如果您从相同分布的数据中重新学习,您应该平均具有相同的性能水平。但请注意,这是平均水平,当从整个数据重新训练时,这可能会上升或下降。换句话说,由于您将重新培训,因此存在额外的不确定性来源。 (2) 超参数的选择与您在每个折叠中使用的数据点数量完全一致。如果你从整个数据集重新学习,超参数的最优值在理论上和实践中不再相同,所以在重新训练的想法中,你真的交叉手指,希望你选择的超参数仍然没问题用于更大的数据集。 如果您使用留一法,显然没有问题,如果数据点的数量很大,有 10 倍 CV,您应该没问题。但是如果你从 5 倍 CV 的 25 个数据点中学习,那么 20 个点的超参数与 25 个点的超参数并不完全相同......
缺点:从直觉上看,您不会从一次训练所有数据中受益
遗憾的是,关于这方面的理论很少,但以下两篇论文,尤其是第二篇论文,精确地考虑了 K 折 CV 预测变量的平均或聚合。
荣格 (2016)。在高维模型中通过交叉验证分数进行有效的调整参数选择。国际数学与计算科学杂志, 10(1), 19-25.
Maillard, G.、Arlot, S. 和 Lerasle, M.(2019 年)。聚合保留。 arXiv 预印本 arXiv:1909.04890。
答案 1 :(得分:0)
答案很简单:您使用(重复)交叉验证(CV)的过程来获得模型的相对稳定的性能估计而不是改进它。
考虑尝试不同的模型类型和参数化,这些模型类型和参数化非常适合您的问题。使用CV,您可以获得关于每种模型类型和参数化对未见数据的执行方式的许多不同估计。从这些结果中,您通常会选择一个非常适合您将使用的模型类型+参数化,然后再次对所有(训练)数据进行训练。多次这样做的原因(不同的重复分区,每个分区使用不同的分区分割)是为了获得性能的稳定估计 - 这将使您能够实现看看平均值/中位数表现及其差价(会给你关于模型通常表现得多好以及幸运/不幸的可能性以及获得更好/更差结果的信息)。
还有两件事:
答案 2 :(得分:0)
我喜欢你的想法。我认为您刚刚偶然发现了随机森林: https://en.wikipedia.org/wiki/Random_forest
答案 3 :(得分:0)
不用重复简历,当您根据新数据评分时,您看似最好的模型很可能只是中等水平的模型。