我有一个代码可以对数据集执行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]]);
}
答案 0 :(得分:2)
假设代码行
data.folds((10), new Random(100));
正确采样了10%的数据,并将所有10折返回给输出变量,从而分离出看起来正确的数据集。
但是,您应该记住要重复k次以进行k倍交叉验证和平均结果。