何时使用 k 折交叉验证以及何时使用拆分百分比?

Posted

技术标签:

【中文标题】何时使用 k 折交叉验证以及何时使用拆分百分比?【英文标题】:When to use k-fold cross validation and when to use split percentage? 【发布时间】:2016-08-28 10:29:52 【问题描述】:

哪种数据集从使用 k 折验证中获益最多?它通常比标准拆分百分比更好吗?

【问题讨论】:

小型数据集 - 也可以,通常会更好。 【参考方案1】:

简短的回答是:小的。

更长的版本 - 当单个随机数据样本不代表基础分布的样本时,您使用 k 折拆分(或引导等)。数据集的大小只是一种启发式方法,它试图捕捉这种现象。问题是——你的分布越复杂——越大就是“足够大”。因此,如果您的问题是 2D 分类,您可以几乎完美地拟合线性模型,那么即使您只有几百个点,您也可能可以使用单个随机拆分。另一方面,如果您的数据来自极其复杂的分布,这违反了 iid 假设等,您将需要大量拆分来恢复可靠的统计数据。

那么如何决定呢?一般来说 - 如果你能负担得起,就做 k 倍 cv(就计算时间而言)。您不会以这种方式损害您的流程。另一种在统计上更合理的方法是收集数据的多个统计数据,例如 - 每个拆分的边际分布(每个特征的投影)的 KDE,以及整个数据集并比较这三个 - 如果它们几乎相同,你就是很适合这样的分裂。如果您可以注意到(视觉上或通过统计测试)这些分布显着不同 - 那么您必须添加 k-fold cv(或其他减少结果方差的技术)。

【讨论】:

以上是关于何时使用 k 折交叉验证以及何时使用拆分百分比?的主要内容,如果未能解决你的问题,请参考以下文章

在 NestJs 中何时使用守卫以及何时使用中间件

python-sklearn数据拆分与决策树的实现

绘制 K 折交叉验证的 ROC 曲线

了解机器学习过程和 K 折交叉验证

使用交叉验证提高准确性,不使用交叉验证降低准确性

如何在朴素贝叶斯分类器中使用 k 折交叉验证?