Шаг 132.
Глубокое обучение на Python. ... . Обучающие, проверочные и контрольные наборы данных. Проверка с простым расщеплением выборки

    На этом шаге мы рассмотрим общий алгоритм организации такой проверки.

    Некоторая часть данных выделяется в контрольный набор. Обучение производится на оставшихся данных, а оценка качества - на контрольных. Как уже говорилось на предыдущих шагах, для предотвращения утечек информации модель не должна настраиваться по результатам прогнозирования на контрольных данных, поэтому требуется также зарезервировать отдельный проверочный набор.

    Схематически проверка с простым расщеплением выборки выглядит, как показано на рисунке 1.


Рис.1. Деление данных при использовании проверки с простым расщеплением выборки

    В примере 5.5 демонстрируется простейшая реализация этого приема.


Пример 5.5. Проверка с простым расщеплением выборки
num_validation_samples = 10000
# Перемешивание данных нередко весьма желательно
np.random.shuffle(data)

# Формирование проверочной выборки
validation_data = data[:num_validation_samples] 
# Формирование обучающей выборки
training_data = data[num_validation_samples:]
# Обучение модели на обучающих и оценка на проверочных данных
model = get_model()
model.fit(training_data, ...)
validation_score = model.evaluate(validation_data, ...)
# В этой точке можно выполнить корректировку модели, 
# повторно обучить ее, оценить и снова скорректировать
...
# После настройки гиперпараметров часто желательно выполнить 
# обучение окончательной модели на всех данных, 
# не включенных в контрольный набор
model.fit(np.concatenate([training_data, validation_data]), ...)
test_score = model.evaluate(test_data, ...)

    Настоящий протокол оценки самый простой, но он страдает одним существенным недостатком: при небольшом объеме доступных данных проверочная и контрольная выборки могут содержать слишком мало образцов, чтобы считаться статистически репрезентативными. Это легко заметить: если разные случайные перестановки данных перед расщеплением дают сильно отличающиеся оценки качества модели, значит, вы столкнулись именно с такой проблемой. Для ее преодоления были разработаны два других подхода - перекрестная проверка по K блокам и итерационная проверка по K блокам с перемешиванием. Обсудим их в следующих шагах.

    На следующем шаге мы рассмотрим перекрестную проверку по K блокам.




Предыдущий шаг Содержание Следующий шаг