Задать вопрос
@ehevnlem
Программирую с 1975, в интернете с 1993.

Какая разница между валидационным и тестовым наборами данных?

Прочитал кучу статей, но ясности нет. В некоторых статьях пишут что валидационный набор иногда не нужен, можно обойтись тестовым. В чем разница между этими наборами данных? В каких случаях можно обойтись без валидационного набора?
  • Вопрос задан
  • 2494 просмотра
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
Data Analyst
Смотри в теории машинного обучения есть такая важная тема как Resampling Methods. Это методы случайной выборки из данных которые у тебя есть. Есть два основных это Cross Validation и Bootstrap. Обычно во всяких обучающих материалах используется Cross Validation да и на практике он тоже очень популярен. Что он из себя представляет мы берем например делим случайным образом датасет на 5 частей. Сначала треним на 4 потом тестим на одном что остался, потом на других 4 и тестим на одном что остался и т.д. Так вот каждый такой набор (на котором мы тестим) называется валидационным набором. Например наша метрика MSE мы получим 5 MSE по каждому валидационному набору потом обычно берут среднее по ним.

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

Используют и то и то. Это инженерное решение и ты будешь видеть оба подхода. Ну и на каких то обучающих историях, ты можешь увидеть отсутствие кросс-валидации и только разбиение train_test_split.

В идеале все выглядит вот так. Единственное существует огромное количество разных кросс-валидаций.

64bcbf8e217a9092904980.png

Это пример где кросс-валидация используется для тюнинга гиперпараметров, но точно также она будет использоваться и для других целей, каждый синий Fold это и есть валидационный набор.
Ответ написан
@AlexSku
не буду отвечать из-за модератора
В Матлабе подход такой: при обучении на тренировочных данных кривая ошибок идёт вниз. Кривая ошибок валидационных данных обычно немного выше, но тоже идёт вниз. Потом начинает идти вверх, хотя ошибки на тренировочных данных продолжают уменьшаться. Вот это означает переобучение. Поэтому берут параметры сети, при которых был минимум ошибок валидации.
При этих параметрах смотрят результат на тесте.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы