我了解k-fold 交叉验证的概念,但我不明白“折叠”是什么意思。引用维基百科上的链接页面:
然后将交叉验证过程重复 k 次(折叠)
这似乎很模糊。“折叠”是否指该过程的每次重复?或者它是一个名词来指代成对的训练-测试数据集?
我了解k-fold 交叉验证的概念,但我不明白“折叠”是什么意思。引用维基百科上的链接页面:
然后将交叉验证过程重复 k 次(折叠)
这似乎很模糊。“折叠”是否指该过程的每次重复?或者它是一个名词来指代成对的训练-测试数据集?
那里的措辞肯定很尴尬。
回想一下,交叉验证将数据集划分为个大致相等的“子数据集”。这些“子数据集”中的每一个都称为“折叠”。折交叉验证需要重新拟合模型次,每次从数据中省略一次,因此术语“折叠”也可以用来指代每次重复。
由于折叠和重复之间存在一对一的对应关系,因此这种松散的术语通常没有问题。通常从上下文中可以明显看出它的用途是什么,而其他时候它并没有什么区别。
“折叠”是指划分为训练集和验证集(在该词的集合理论意义上)。这表示:
( )。
请注意,在“经典”折交叉验证 (CV) 中,验证集上有一个附加条件:
最后,请注意经典控制执行训练验证过程的次数以及验证集和训练集的大小:,因此.
我同意 OP 的观点,即这个术语既尴尬又令人困惑。这是我的看法:受过良好教育的以英语为母语的人已经习惯了诸如“双重”或“三重”之类的术语,这听起来有点过时但仍然可以使用。然而,至关重要的是,我们不认为这些词包含名词“折叠”;“折叠”在这里更像是一个后缀,一个有趣的特殊结构,它与一个数字组合成“双”或“三”等的多彩变体。它与动词“折叠”或做折纸时可能出现的名词“折叠”,指的是一张折叠的纸。
我怀疑“折叠”这个词开始在 k 折叠交叉验证的上下文中用作名词,意思是“分区”,当说话者/作家不熟悉英语或交叉验证时认为“k 折叠”字面意思意思是“对数据进行 k '折叠'”。有人会得出这样的结论是可以理解的。然而,“k-fold”并不意味着“制作 k 'folds'” ——相反,它意味着“进行 k 次交叉验证”,其中隐含了必须对数据进行 k 分区的细节。
就我个人而言,我从不以这种奇怪的方式使用“折叠”;我将有问题的数据段称为“分区”,它更清楚。
此外,仅仅因为这种用法已经在社区中传播并不能使其成为合理的英语用法,IMO。我更喜欢直接和清晰的沟通,而不是发明和使用令人困惑的新行话。