Мне нужно разделить набор данных 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 для тестового набора.
Какой-нибудь совет, как выполнить этот раздел?
Я пытался написать этот пост в стандарте написания хорошего вопроса. Если кто-то может дать отзыв для улучшения вопроса, он будет очень признателен.