Как реализовать 10-кратную перекрестную проверку? - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть код для выполнения 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]]);
        }

1 Ответ

0 голосов
/ 18 ноября 2018

Если предположить, что код в строке

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

правильно выбирает 10 процентов данных и возвращает все 10 сгибов в выходную переменную, разделение набора данных выглядит корректно.

Тем не менее, вы должны помнить, что нужно повторять k раз для k-кратной перекрестной проверки и усреднения результатов.

k iterations for k fold cross validation

Источник: https://en.wikipedia.org/wiki/Cross-validation_(statistics)#/media/File:K-fold_cross_validation_EN.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...