Образец разбиения для перекрестной проверки в подмножествах образца (по школам) (Matlab) - PullRequest
0 голосов
/ 06 апреля 2019

Мне нужно разделить набор данных 5 способами для 5-кратной перекрестной проверки с использованием matlab. Однако набор данных относится к ученикам, вложенным в школы, поэтому вместо разделения всего набора данных по 5 направлениям я хочу разделить каждую школу по 5 направлениям. После построения 5 учебных и 5 тестовых наборов данных я хочу иметь возможность определить, какие наблюдения в каждом наборе данных принадлежат каждой школе.

В полном наборе данных у меня есть векторный элемент x (28x15363) и целевой вектор y (1x15363). У меня также есть индексный вектор (task_indexes), который идентифицирует первое наблюдение для каждой школы.

Я хотел бы создать набор из 5 индексов обучающих наборов и 5 соответствующих индексов тестовых наборов на основе 5-кратного разбиения каждой школы, и мне понадобится набор индексов задач, 5 tr_indexes, которые идентифицируют первое наблюдение каждого школа в каждом учебном наборе и tsk_indexes, которые делают то же самое для тестового набора.

Индексы обучающего набора tr, индексы тестового набора tst, индексы задач обучающего набора tr_indexes и индексы задач тестового набора tst_indexes должны соответствовать следующему коду.

gammas = [.1, .01, .001, .0001, .00001]

errgrid = zeros(5,1)

for g = 1:length(gammas)
    gammas = gammas(4)
    [testerrs,theW,theD] = ...
        run_code_example(gammas, x(:, tr), y(tr), x(:, tst), y(tst), tr_indexes, tst_indexes, Dini, 10, 'feat', 0, fname);
    errgrid(g) = testerrs

gammaselect = gammas(min(errgrid))

В этом коде я использую предоставленный авторами раздел с индексами обучающих наборов tr и тестовыми индексами tst, а также индексами задач tr_indexes для обучающего набора и tst_indexes для тестового набора.

Какой-нибудь совет, как выполнить этот раздел?

Я пытался написать этот пост в стандарте написания хорошего вопроса. Если кто-то может дать отзыв для улучшения вопроса, он будет очень признателен.

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