【问题标题】:How to implement 10 fold cross validation?如何实现 10 折交叉验证?
【发布时间】:2018-11-18 16:26:37
【问题描述】:

我有一个代码可以对数据集执行 10 折交叉验证。通过将数据分成 k-1 部分用于训练和剩余部分用于测试来创建代码。我想看看我的代码是否正确 我的代码是:

 Dataset data = data1;
        Dataset[] folds = data.folds((10), new Random(100));
        Dataset training = new DefaultDataset();
        Dataset testing = new DefaultDataset();
        int[] tr = {0, 2, 3, 4,5, 6,7, 8, 9};
        int[] te = {1};   
        for (int i = 0; i < tr.length; i++) {
            training.addAll(folds[tr[i]]);
        }
        for (int i = 0; i < te.length; i++) {
            testing.addAll(folds[te[i]]);
        }

【问题讨论】:

    标签: java machine-learning cross-validation


    【解决方案1】:

    假设代码在一行

    data.folds((10), new Random(100));
    

    正确采样了 10% 的数据,并将所有 10 个折叠返回到输出变量,分离数据集看起来是正确的。

    但是,您应该记住迭代 k 次以获得 k 折交叉验证和平均结果。

    来源:https://en.wikipedia.org/wiki/Cross-validation_(statistics)#/media/File:K-fold_cross_validation_EN.jpg

    【讨论】:

      猜你喜欢
      • 2011-11-29
      • 2020-02-10
      • 1970-01-01
      • 2016-12-15
      • 2012-05-11
      • 2021-06-03
      • 2012-02-04
      • 2013-08-16
      • 2012-01-07
      相关资源
      最近更新 更多