【问题标题】:R: k-fold cross-validation for train data setR:训练数据集的 k 折交叉验证
【发布时间】:2018-05-03 16:43:41
【问题描述】:

我正在使用 R 中的 C5.0 对心脏病数据集进行一些分类任务,在最常见的情况下,数据将分为 80% 用于训练,20% 用于测试, 我想使用k-fold交叉验证(k=10),但是我对这一点感到困惑,因为我们知道通过使用10-fold交叉验证,我们会将整个数据分成9个子集训练和测试的一个子集。

是否可以将数据分成 80% 用于训练和 20% 用于测试,然后对训练数据应用 k 折交叉验证? 还是我必须对整个数据集应用 k 折交叉验证?

【问题讨论】:

    标签: r machine-learning classification


    【解决方案1】:

    一个选项是 k=5。在这种情况下,您使用 80% 进行训练并使用 20% 进行测试。但为此,您不需要使用 k 折交叉验证。

    k-fold 交叉验证总是在整个数据集上进行。因此,在 k=5 的情况下,有 5 种可能的场景需要进行测试和比较。

    【讨论】:

    【解决方案2】:

    对整个数据集应用 k 折交叉验证是更好的选择。在这种方法中,数据将被分成 k 折,其中 k-1 折用于训练,剩下的 1 折用于测试。这样,一旦交叉验证结束,您将获得完整数据的性能。

    但需要注意的一点是,对于大多数分类问题,参数调整是重要的一步。因此,为此您可能会考虑 50% 的数据来找到分类器的最佳参数。此处也使用交叉验证方法。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2016-02-25
      • 2018-08-29
      • 2022-01-16
      • 2016-05-12
      • 2019-12-23
      • 2016-11-15
      • 2016-01-15
      • 1970-01-01
      相关资源
      最近更新 更多