Забавно, что ответ, получивший наибольшее количество голосов, на самом деле не отвечает на этот вопрос :), поэтому я подумал, что было бы неплохо подкрепить это немного большей теорией - в основном взятой из «Data Mining: Практические инструменты и методы машинного обучения» и Тома Митчелла. «Машинное обучение» .
Введение.
Таким образом, у нас есть классификатор и ограниченный набор данных, и определенное количество данных должно входить в обучающий набор, а остальное используется для тестирования (при необходимости третье подмножество используется для проверки).
Дилемма, с которой мы сталкиваемся, заключается в следующем: чтобы найти хороший классификатор, «обучающее подмножество» должно быть как можно большим, но чтобы получить хорошую оценку ошибки, «тестовое подмножество» должно быть как можно большим - но оба подмножества взяты из тот же бассейн.
Очевидно, что тренировочный набор должен быть больше, чем тестовый набор, то есть разделение не должно быть 1: 1 (главная цель - тренироваться , а не тестировать ), но неясно, где должно быть разделение.
Задержка процедуры.
Процедура разбиения «суперсета» на подмножества называется методом удержания . Обратите внимание, что вам легко может повезти, и примеры определенного класса могут отсутствовать (или быть перепредставлены) в одном из подмножеств, к которому можно обратиться через
- случайная выборка, которая гарантирует, что каждый класс должным образом представлен во всех подмножествах данных - процедура называется стратифицированной задержкой
- случайная выборка с повторным процессом обучения-тестирования-проверки поверх него - который называется повторным стратифицированным удержанием
В единственной (неповторяющейся) процедуре удержания вы могли бы подумать о смене ролей данных тестирования и обучения и усреднить два результата, но это возможно только при соотношении 1: 1 между обучающими и тестовыми наборами, что недопустимо (см. Введение ). Но это дает представление, и улучшенный метод ( вместо этого используется перекрестная проверка ) - см. Ниже!
Перекрестная проверка.
При перекрестной проверке вы выбираете фиксированное количество сгибов (разделов данных). Если мы используем три раза, данные делятся на три равных раздела и
- мы используем 2/3 для обучения и 1/3 для тестирования
- и повторите процедуру три раза, чтобы, в конце концов, каждый экземпляр был использован ровно один раз для тестирования.
Это называется тройной перекрестной проверкой , а если также принята стратификация (что часто бывает так), то это называется трехуровневой перекрестной проверкой .
Но, о чудо, стандартным способом не является разделение 2/3: 1/3. Цитата «Интеллектуальный анализ данных: практические инструменты и методы машинного обучения» ,
Стандартный способ [...] состоит в использовании многослойной перекрестной проверки. Данные случайным образом разделены на 10 частей, в которых класс представлен примерно в тех же пропорциях, что и в полном наборе данных. Каждая часть проходит по очереди, а схема обучения обучается на оставшиеся девять десятых; затем его коэффициент ошибок рассчитывается по набору несогласных. Таким образом, процедура обучения выполняется в общей сложности 10 раз на разных тренировочных наборах (каждый из которых имеет много общего). Наконец, 10 оценок ошибок усредняются для получения общей оценки ошибок.
Почему 10? Поскольку «..Extensive тесты на многочисленных наборы данных, с различными методами обучения, показали , что 10 о правильном количестве складок , чтобы получить лучшую оценку ошибки, и есть также некоторые теоретические доказательства того, что поддерживает это ..» гавань я Не нашли, какие обширные тесты и теоретические доказательства они имели в виду, но этот кажется хорошим началом для того, чтобы копать больше - если хотите.
Они в основном просто говорят
Хотя эти аргументы ни в коем случае не являются окончательными, и в кругах машинного обучения и интеллектуального анализа данных по-прежнему ведутся споры о том, какая схема лучше всего подходит для оценки, 10-кратная перекрестная проверка стала стандартным методом на практике. [...] Более того, нет ничего волшебного в том, что точное число 10: 5-кратная или 20-кратная перекрестная проверка, вероятно, будет почти такой же хорошей.
Bootstrap, и - наконец-то! - ответ на оригинальный вопрос.
Но мы еще не пришли к ответу относительно того, почему часто рекомендуется 2/3: 1/3. Я считаю, что он унаследован от метода начальной загрузки .
Он основан на выборке с заменой. Ранее мы помещали образец из «большого набора» точно в одно из подмножеств. Начальная загрузка отличается, и образец может легко появиться и в обучающем и в тестовом наборе.
Давайте рассмотрим один конкретный сценарий, в котором мы берем набор данных D1 из n экземпляров и заменим его n раз с заменой, чтобы получить другой набор данных D2 из n экземпляров.
Теперь присмотритесь.
Поскольку некоторые элементы в D2 будут (почти наверняка) повторяться, должны быть некоторые экземпляры в исходном наборе данных, которые не были выбраны: мы будем использовать их в качестве тестовых экземпляров.
Какова вероятность того, что конкретный экземпляр не был поднят для D2 ? Вероятность того, что вас поймают при каждом дубле, равна 1 / n, поэтому противоположность равна (1 - 1 / n) .
Когда мы умножаем эти вероятности вместе, это (1 - 1 / n) ^ n, что составляет е ^ -1, что составляет около 0,3. Это означает, что наш тестовый набор будет около 1/3, а тренировочный набор будет около 2/3.
Я полагаю, что именно по этой причине рекомендуется использовать разделение 1/3: 2/3: это соотношение берется из метода начальной загрузки.
Завершение.
Я хочу закончить цитатой из книги интеллектуального анализа данных (которую я не могу доказать, но предполагаю правильной), где они обычно рекомендуют предпочесть 10-кратную перекрестную проверку:
Процедура начальной загрузки может быть лучшим способом оценки ошибки для очень маленьких наборов данных. Однако, как и в случае перекрестной проверки «один-один-один-один», у нее есть недостатки, которые можно проиллюстрировать, рассматривая специальную, искусственную ситуацию [...] полностью случайный набор данных с двумя классами. Истинная частота ошибок составляет 50% для любого правила прогнозирования. Но схема, которая запоминает обучающий набор, даст идеальный показатель повторного замещения 100%, так что экземпляры etraining = 0, а начальная загрузка 0,632 будет смешивать это с весом 0,368 до дать общий коэффициент ошибок только 31,6% (0,632 ¥ 50% + 0,368 ¥ 0%), что обманчиво оптимистично.
Это проблема обобщения, то есть, насколько хорошо наша гипотеза будет правильно классифицировать будущие примеры, которые не являются частью обучающего набора. Пожалуйста, посмотрите этот фантастический пример: что произошло, если ваша модель соответствует только вашим данным, а не новой: закон Титуса-Боде
источник
До сих пор @andreiser дал блестящий ответ на вторую часть вопроса ОП относительно разделения данных по обучению / тестированию, а @niko объяснил, как избежать переобучения, но никто не дошел до достоинств вопроса: зачем использовать разные данные для обучения и оценки помогает нам избежать переоснащения.
Наши данные делятся на:
Важно понять, каковы разные роли экземпляров Validation и Test.
См. Стр. 222 «Элементы статистического обучения: сбор данных, вывод и прогноз» для получения более подробной информации.
источник