Почему разделение данных на набор для обучения и тестирования недостаточно

18

Я знаю, что для того, чтобы получить доступ к характеристикам классификатора, мне нужно разделить данные на обучающие / тестовые наборы. Но читая это :

При оценке различных настроек («гиперпараметров») для оценщиков, таких как настройки C, которые должны быть установлены вручную для SVM, все еще существует риск перенастройки на тестовом наборе, поскольку параметры можно настраивать до тех пор, пока оценщик не будет работать оптимально. Таким образом, знания о наборе тестов могут «просочиться» в модель, а метрики оценки больше не сообщают о производительности обобщения. Чтобы решить эту проблему, еще одна часть набора данных может быть выделена в виде так называемого «набора проверки»: обучение продолжается на обучающем наборе, после чего выполняется оценка на наборе проверки и когда эксперимент кажется успешным , окончательная оценка может быть сделана на тестовом наборе.

Я вижу, что введен еще один (третий) набор проверки, что оправдано переоснащением набора тестов во время настройки гиперпараметров.

Проблема в том, что я не могу понять, как может появиться это переоснащение, и поэтому не могу понять обоснованность третьего набора.

Сальвадор Дали
источник
2
Я думаю, что большая путаница здесь происходит от 2 или 3 довольно разных значений термина «валидация». Валидация при перекрестной проверке - это, в основном, просто название процедуры разделения без замены. «Проверка», установленная в цитируемом тексте, ИМХО была бы лучше понята как «настройка» или «набор оптимизации». Принимая во внимание, что «валидация», например, в инженерной или аналитической химии, означает доказать, что данный конечный метод соответствует своему назначению - что выполняется (моделируется, аппроксимируется) набором «тест». (Для меня тестирование звучит гораздо менее окончательно, чем проверка ...)
cbeleites поддерживает Монику

Ответы:

17

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

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

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

Марк Клазен
источник
Я могу ошибаться, но тестовый набор предназначен не только для настройки гиперпараметров, но и для сравнения различных типов методов, таких как, например, производительность SVM по сравнению с LDA или случайным лесом, как я указал в своем ответе.
@fcoppens Да, определенно. Я не упомянул об этом явно, но это, безусловно, также вписывается в этот шаг.
Марк Клазен
1
В более общем смысле настройка или оптимизация - это любой процесс, управляемый данными (путем внутренней перекрестной проверки).
cbeleites поддерживает Монику
@MarcClaesen У меня есть вопрос. Если у меня есть 2 различных значения гиперпараметра, и я подгоняю эти 2 модели к обучающему набору, то применяю их на тестовом наборе, тогда если частота ошибок, полученная мной на тестовом наборе, является объективной оценкой истинной частоты ошибок прогнозирования эти 2 модели? Потому что если вы сейчас дадите мне другой независимый набор тестовых данных, то этот новый набор тестовых данных по сути будет таким же, как и предыдущий набор тестов. Поэтому, если модель имеет лучший результат теста, она также должна опередить другую модель в новом наборе данных теста. Зачем нам нужен валидационный набор?
KevinKim
«Если вы оптимизируете какой-либо аспект на основе тестовых данных, тогда ваши тестовые данные больше не являются независимыми, и вам потребуется набор для проверки». это проницательно
Судип Бхандари
11

Я думаю, что проще всего так думать. Существует две вещи, для которых используется перекрестная проверка: настройка гиперпараметров модели / алгоритма и оценка производительности модели / алгоритма.

Рассмотрим первое использование как часть фактического обучения алгоритма. Например, перекрестная проверка для определения силы регуляризации для GLM является частью установления окончательного результата GLM. Такое использование обычно называется внутренней перекрестной проверкой . Поскольку (гипер) параметры все еще устанавливаются, потеря набора настроек не является большой мерой фактической производительности алгоритмов.

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

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

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

При построении модели вы тренируете свои модели на тренировочном образце . Обратите внимание, что вы можете обучать разные модели (т.е. разные техники, такие как SVM, LDA, Random Forest, ... или одну и ту же технику с разными значениями параметров настройки или смесью).

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

Для этой «окончательной» модели нам все еще нужно оценить ошибку, и поэтому мы используем тестовый образец .


источник
1
Я бы перевернул формулировку во втором и третьем абзацах: я бы использовал набор проверки, чтобы найти лучшую модель и настроить ее гиперпараметры (делая это с несколькими наборами проверки, которые разделяют обучающий набор, делает эту перекрестную проверку ) и, как только модель получит был завершен, затем примените его к тестовому набору, чтобы увидеть пример производительности модели вне выборки.
Генри
@ Генри: ОК, Генри, я думаю, что метки фаз менее важны, чем их последовательность / содержание, но ваше замечание имеет смысл для меня, я отредактирую текст, спасибо (+1),
1

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

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

Таким образом, когда данные делятся на 2 набора, то есть наборы обучения и тестирования, разделение выполняется статически. Таким образом, есть шанс переобучить тренировочный набор. Тем не менее, наборы перекрестной проверки создаются с помощью различных методов , таких как перекрестная проверка по k-кратному критерию, проверка на отсутствие перекрестного контроля (LOOCV) и т. Д., Что помогает избежать точного вознаграждения за подбор за 2 набора. и, таким образом, вероятность переоснащения уменьшается.

Вот некоторые ресурсы, которые помогут вам лучше понять.

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

Dawny33
источник