我知道 CV 的诞生是在缺乏训练数据时验证模型的一种方式,但我的理解是,交叉验证通常比只使用一个验证集更好,因为这提供了更公正的模型选择步骤由于验证数据的选择过程,减少了模型结果的随机性。
除了增加计算费用之外,与正常验证相比,交叉验证还有其他缺点吗?可以肯定地说,如果计算复杂性不是问题,那么交叉验证总是比仅仅使用普通验证更好吗?
我知道 CV 的诞生是在缺乏训练数据时验证模型的一种方式,但我的理解是,交叉验证通常比只使用一个验证集更好,因为这提供了更公正的模型选择步骤由于验证数据的选择过程,减少了模型结果的随机性。
除了增加计算费用之外,与正常验证相比,交叉验证还有其他缺点吗?可以肯定地说,如果计算复杂性不是问题,那么交叉验证总是比仅仅使用普通验证更好吗?
在缺乏训练数据的情况下,交叉验证作为一种替代方法是一种轻描淡写的说法。除非您的样本量非常大,否则不同随机拆分的验证性能可能会有很大差异。
交叉验证受此影响较小,因为它考虑了多重折叠的结果。更好的是对多次交叉验证进行平均,每次都有不同的随机分成折叠。
您认为的普通验证实际上只是单折交叉验证。您可能有意使用的示例多次折叠包括:
在后者的情况下,如果您包含来自多个培训来源的数据(例如来自不同机构、研究或数据库的数据),您的模型可能会更好地概括。但是,如果您使用所有来源进行训练,您仍然无法真正估计新来源的性能。
CV 的另一个缺点(除了Frans Rodenburg 的出色答案中的那些)是样本之间存在依赖关系时,例如在时间序列中。在这种情况下,您可以拆分为 train/valid,这样没有训练数据依赖于任何验证数据。(例如,在时间序列的情况下,您的验证数据具有较晚的时间戳。)