Обучающий, проверочный и тестовый наборы данных
В машинном обучении, общей задачей является изучение и построение алгоритмов, которые могут быть обучаемы и делать прогнозы с помощью данных. Такие алгоритмы работают, делая прогнозы или решения основываясь на данных, с помощью построения математической модели основанной на входных данных. Эти входные данные используемые для построения модели обычно поделены на несколько наборов данных. В частности, три набора данных обычно используются на разных этапах построения модели: обучающий, проверочный и тестовый.

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

Далее, обученная модель используется для прогнозирования ответов для наблюдения с помощью второго набора данных, называемого проверочный набор данных (validation data set). Проверочный набор данных предоставляет непредвзятую оценку модели, обученной с помощью обучающего набора данных, в тоже время подстраивая гиперпараметры модели (например, число скрытых слоев и ширину слоев в нейронной сети)). Проверочные наборы данных могут быть использованы для регуляризации обучения с помощью метода ранней остановки (остановки обучения, в тот момент, когда ошибка на проверочном наборе данных начинает увеличиваться, так как это является признаком переобучения на обучающем наборе данных).

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

Наконец, тестовый набор данных (test data set) — это набор данных, используемый для непредвзятой оценки окончательной модели, настроенной с помощью обучающего набора данных. Если данные в тестовом наборе данных никогда не были использованы в обучении (например, в перекрёстной проверке), тестовый набор данных также называется удержанным набором данных (holdout data set). В некоторой литературе термин «проверочный набор» иногда используется вместо «тестового набора» (например, если изначальный набор данных был разделен только на два набора, тестовый набор может называться проверочным набором).

Принятие решения о размерах и стратегиях разделения набора данных на обучающий, тестовый и проверочный наборы сильно зависит от проблемы и имеющихся данных.

Обучающий набор данных 
Обучающий набор данных — это набор данных экземпляров, используемых во время обучающего процесса и используемых для настройки параметров (например, веса в классификаторе).

В задачах классификации, алгоритм обучения с учителем изучает обучающий набор данных для обнаружения, или обучения, оптимальной комбинации переменных, для генерирования хорошей прогнозной модели. Главной целью является создание обученной (настроенной) модели, которая хорошо делает общие выводы на новых, не использованных данных. Настроенная модель оценивается с помощью «новых» примеров из удержанных наборов данных (проверочного и тестового) для оценки аккуратности модели для классификации новых данных. Для уменьшения риска появления проблем, таких как переобучение, экземпляры в проверочном и тестовом наборе данных не должны быть использованы для обучения модели.

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

Проверочный набор данных 
Проверочный набор данных — это набор данных примеров, используемых для настройки гиперпараметров (например, архитектура классификатора). Он иногда также называется набором разработки (development set) или «dev set». Примером гиперпараметров искусственной нейронной сети является число скрытых узлов в каждом слое. Этот набор, также как и тестовый набор (как упоминается ниже) должен иметь такое же распределение вероятности, как и обучающий набор.

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

Основной процесс, использующий проверочный набор данных для выбора модели (как часть обучающего набора данных, проверочного набора данных, и тестового набора данных) состоит в следующем:

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

Тестовый набор данных 
Тестовый набор данных — это набор данных, который независим от обучающего набора данных, но который соответствует такому же распределению вероятностей, как и обучающий набор данных. Если модель, подходящая для обучающего набора данных, также хорошо подходит для тестового набора данных, то произошло минимальное переобучение (смотри изображение ниже). Лучшее соответствие модели обучающему набору данных, в противовес тестовому набору данных обычно указывает на её переобучение.

Таким образом, тестовый набор является набором примеров, используемых только для оценки производительности (например, обобщения) полностью определенного классификатора. Для произведения этой оценки окончательная модель используется для прогнозирования классификация на экземплярах тестового набора. Эти прогнозирования сравниваются с экземплярами настоящей классификации для оценки аккуратности модели.

В ситуациях, когда используются проверочный и тестовый наборы данных, тестовый набор данных обычно используется для оценки окончательной модели, которая выбирается во время процесса тестирования. В случае, когда первоначальный набор данных делится на два набора (обучающий и тестовый набор данных), тестовый набор данных может оценить модель только один раз (например, в ). Следует заметить, что некоторые ресурсы выступают против использования данного метода. Как бы там ни было, при использовании методов, например таких как, перекрёстная проверка, использование двух наборов данных может быть достаточно и эффективно, так как результаты усредняются после повторных этапов обучения и тестирования модели для уменьшения предвзятости и непостоянства.

Путаница в терминологии 
Тестирование — это попытка узнать что-то попробовав это («Для доказательства; доказать истину, подлинность или качество путем эксперимента» в соответствии с Совместным международным словарем английского языка, а валидация — это подтверждение того, что что-то корректно («Подтвердить;» Совместный международный словарь английского языка). Рассматривая с этой точки зрения, самое распространенное использование терминов тестовый набор и проверочный набор — это то, которое приведено выше. Однако, как в производственных, так и в научных кругах, эти термины иногда взаимозаменяемы, с учётом того, что внутренний процесс — это тестирование различных моделей для улучшения (тестовый набор как набор разработчика) и окончательная модель, это та, которая должна быть проверена перед промышленным использованием с невидимыми до этого данными (проверочный набор). "Литература машинного обучения часто переворачивает значение 'проверочного' и 'тестового' наборов. Это самый яркий пример терминологической путаницы, который пронизывает исследования искусственного интеллекта. Тем не менее, важный концепт о котором необходимо помнить заключается в том, что финальный набор, называющийся тестовым или проверочным, должен быть использован только в окончательном эксперименте.

Перекрёстная проверка 
Для того чтобы получить более стабильные результаты и использовать все значимые данные для обучения, набор данных может быть повторно разделен на несколько обучающих и проверочных наборов данных. Этот метод известен как перекрёстная проверка. Для подтверждения производительности модели обычно используются дополнительные тестовые наборы данных, удерживаемые для использования в перекрёстной проверке.

См. также 
 Статистическая классификация
 
 Иерархическая классификация

Примечания 

Машинное обучение
Анализ данных