我有以下问题:交叉验证如何成为衡量统计模型性能的“黄金标准”?
我理解交叉验证的“逻辑吸引力”(例如 K-Fold 交叉验证、留一个交叉验证):
从逻辑上讲,在某些时候 - 统计模型(例如线性回归模型、随机森林)将需要对新数据进行预测。
从逻辑上讲,我们不会有很多关于这个新数据的信息——我们(自然地)假设这个新数据可以取我们已经观察到的数据范围之间的任何值。
从逻辑上讲,在这些新数据可供我们使用之前,我们希望了解我们的统计模型将如何处理这些新数据。
因此,交叉验证成为自然选择。通过随机抽样观察数据的小子集,我们可以创建“一系列平行宇宙”(即 K-Fold 交叉验证中的“折叠”),以查看统计模型在每个“平行宇宙”中的灵活性和表现如何宇宙”。我们希望这些“宇宙”中的一些可能包含统计模型的“不利和不利的测试用例”,并让我们了解统计模型在面对新数据时的平均表现 - 考虑到这些“最差案例场景”。
交叉验证(例如 K 折叠)过程大致如下:
第 1 步:随机选择 70%(我听说“70%”是有争议的——可以提高或降低)数据并在这 70% 上训练模型。
第 2 步:查看第 1 步中的模型对剩余 30% 数据的执行情况如何(例如 MSE、准确度、F-Score 等)。记录这个测量值。
第 3 步: “多次”重复第 1 步和第 2 步。每次重复此操作时,请跟踪测量结果。
第 4 步:平均所有测量值:这个平均值表示您的统计模型对新数据的执行情况。
第 5 步:最后,您使用完整数据集重新构建统计模型,并使用该模型预测现实世界中的新数据。这是因为交叉验证过程(显然)让您了解您的模型是否过度拟合数据。
我的问题:是否有任何数学证明突出了交叉验证程序所做的任何理论“保证”?就像中心极限定理“保证”来自总体的“n 个随机样本”的平均值将遵循正态分布(随着随机样本的数量趋于无穷大);或Bootstrap 方法“保证”来自足够大样本的无限数量的随机样本(有替换)的平均值的置信区间将“包含”总体平均值 - 是否有任何关于误差的理论保证交叉验证估计器(在上图中:E)?
还是交叉验证程序的流行更多地植根于其务实和合乎逻辑的吸引力(而不是交叉验证估计器所承诺的理论结果)?
我试图阅读更多关于交叉验证估计器的起源、理论保证和理论结果的信息:
LOOCV 公式的证明(显然这包含一个证明,证明交叉验证估计器是多项式回归的“真实”MSE 的无偏估计器 - 但我不确定这个结果是否扩展到其他统计模型,如决策树和随机森林)
但我还没有找到任何可以回答我的问题的东西。
有人可以帮我吗?
谢谢!
参考:
https://en.wikipedia.org/wiki/Cross-validation_(statistics) -https://www.researchgate.net/publication/326465007/figure/fig1/AS:649909518757888@1531961912055/Ten-fold-cross-validation -diagram-The-dataset-was-divided-into-10-parts-and-nine-of.png
注 1:在旁注中,我听说中心极限定理和 Bootstrap 方法做出的“有吸引力的理论承诺”在现实中往往不那么“有吸引力”,原因如下:
现实世界中可用的样本总是倾向于是“随机”样本(即不代表人口,例如,对动物园中的大象和野外的大象进行尺寸测量可能更容易——您的数据可能包含更多动物园大象的测量值......因此,您计算的大象的平均大小可能包含可能无法反映世界上所有大象大小的统计偏差,从而降低了 CLT/Bootstrap 的理论承诺)。
对于 CLT/Bootstrap 的理论保证,可用的样本可能不够“大”。
现实世界的数据通常是“动态的”,自您收集数据以来,不可观察的因素可能会导致数据发生根本性变化(例如,如果您对衡量工资感兴趣,可能会发生经济事件,从而降低您最初的平均工资收集数据。)
结构错误、实验错误和测量错误也可能导致您的数据不能代表真实人群(例如,有缺陷的秤没有记录受试者的真实体重,医疗患者故意低估他们的吸烟习惯)
与高维数据相关的常见问题(即单变量数据中的问题通常在多变量数据中加剧,例如“维数诅咒”向我们表明,随着维数的增加,高维数据需要无限数量的样本 - 或者数据是概率上可能是稀疏的并集中在“空间”的外围)
参考:
https://www.inf.fu-berlin.de/inst/ag-ki/rojas_home/documents/tutorials/dimensionality.pdf
https://www.americanscientist.org/article/an-adventure-in-the-nth-dimension
注 2:在机器学习方面,存在一个类似的概念,称为“Rademacher 复杂性”(https://en.wikipedia.org/wiki/Rademacher_complexity),它在理论上能够限制机器学习的泛化误差关于训练数据来自的概率分布的模型:
因此,理论上,Rademacher 复杂度将使我们能够了解机器学习模型在观察任何未来数据的条件下可能出现的最差性能。然而,在实践中,从 Rademacher 复杂度得出的误差范围被认为“太宽”而无法实际使用。