Не можете понять, как работает этот алгоритм k-кратной проверки? - PullRequest
0 голосов
/ 17 июня 2020
for i in range(k):
        print('processing fold #', i)
        val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
        val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]
        partial_train_data = np.concatenate([train_data[:i * num_val_samples],train_data[(i + 1) *num_val_samples:]],axis=0)
        partial_train_targets = np.concatenate([train_targets[:i * num_val_samples],train_targets[(i + 1) * num_val_samples:]],axis=0)

Я не могу понять часть нарезки в этом коде.
Форма набора входных данных train_data - (404,13).
k - 4 и train_label имеет форму (404).
Я знаю, что мне нужно создать 4-кратный стек проверки с 101 набором данных в каждом.

1 Ответ

0 голосов
/ 17 июня 2020

Если количество обучающих наборов невелико, то количество проверочных наборов, полученных из обучающего набора, будет очень маленьким. Это приведет к большой дисперсии в наборе для валидации, и, следовательно, оценка валидации может сильно измениться. Следовательно, в этом случае мы разбиваем обучающие данные на k разделов (обычно k = 4 или 5), каждый из которых содержит len(train_data)//k количество обучающих выборок. Мы обучаем модель для k-1 перегородок и оцениваем оставшиеся перегородки. Это делается k раз. Например, всего 404 обучающих выборки. Мы создадим k = 4 ie четырехкратный проверочный стек, где в каждом свертке будет 404 // k = 10 обучающих выборок. В первой итерации мы будем тренироваться для 10-> 404 ie 303 обучающих выборок ie последних 3-х кратных из 4-х кратных значений и проверять для первой кратности или 0-> 101 ie 101 обучающих образцов. В следующей итерации мы проверим для 2-го раза или 101-> 202 обучающих выборок и тренируемся для 0-> 101 ie 101 ie 1-го раза и 202-> 404 ie 202 ie последних 2 раза .

Мы продолжаем это k раз, пока модель не будет проверена для всех k складок. Посмотрите это видео, чтобы лучше понять: https://www.youtube.com/watch?v=gJo0uNL-5Qw из примера 3:30.

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