R:训练数据集的 k 折交叉验证
Posted
技术标签:
【中文标题】R:训练数据集的 k 折交叉验证【英文标题】:R: k-fold cross-validation for train data set 【发布时间】:2018-05-03 16:43:41 【问题描述】:我正在使用 R 中的 C5.0 对心脏病数据集进行一些分类任务,在最常见的情况下,数据将分为 80% 用于训练,20% 用于测试, 我想使用k-fold交叉验证(k=10),但是我对这一点感到困惑,因为我们知道通过使用10-fold交叉验证,我们会将整个数据分成9个子集训练和测试的一个子集。
是否可以将数据分成 80% 用于训练和 20% 用于测试,然后对训练数据应用 k 折交叉验证? 还是我必须对整个数据集应用 k 折交叉验证?
【问题讨论】:
【参考方案1】:一个选项是 k=5。在这种情况下,您使用 80% 进行训练并使用 20% 进行测试。但为此,您不需要使用 k 折交叉验证。
k-fold 交叉验证总是在整个数据集上进行。因此,在 k=5 的情况下,有 5 种可能的场景需要进行测试和比较。
【讨论】:
你可以在analyticsvidhya.com/blog/2015/11/…找到一个例子【参考方案2】:对整个数据集应用 k 折交叉验证是更好的选择。在这种方法中,数据将被分成 k 折,其中 k-1 折用于训练,剩下的 1 折用于测试。这样,一旦交叉验证结束,您将获得完整数据的性能。
但需要注意的一点是,对于大多数分类问题,参数调整是重要的一步。因此,为此您可能会考虑 50% 的数据来找到分类器的最佳参数。此处也使用交叉验证方法。
【讨论】:
以上是关于R:训练数据集的 k 折交叉验证的主要内容,如果未能解决你的问题,请参考以下文章