Существует ли эмпирическое правило для разделения набора данных на обучающие и проверочные наборы?



есть правило, как разделить данные на обучающие и проверочные наборы? Это даже в соотношении 50/50, желательно? Или есть явные преимущества наличия большего количества обучающих данных относительно данных проверки (или наоборот)? Или этот выбор в значительной степени зависит от приложения?



Я в основном использовал 80% / 20% данных обучения и проверки, соответственно, но я выбрал это подразделение без какой-либо принципиальной причины. Может кто-то, кто более опытен в машине обучение посоветуйте мне?

691   6  

6 ответов:

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

Если у вас есть в общей сложности 100 экземпляров, вы, вероятно, застряли с перекрестной проверкой поскольку ни одно разделение не даст вам удовлетворительного отклонения в ваших оценках. Если у вас есть 100 000 экземпляров, на самом деле не имеет значения, выбираете ли вы разделение 80:20 или разделение 90:10 (действительно, Вы можете использовать меньше обучающих данных, если ваш метод особенно интенсивен с вычислительной точки зрения).

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

  1. Разделите ваши данные на обучение и тестирование (80/20 действительно хорошая отправная точка)
  2. разделить обучение данные в обучение и проверку (опять же, 80/20-это справедливое разделение).
  3. Подвыборка случайных выборок ваших обучающих данных, обучите классификатор с этим и запишите производительность на наборе проверки
  4. попробуйте серию пробегов с различными объемами данных обучения: случайным образом выборка 20% из него, скажем, 10 раз и наблюдать производительность на данных проверки, а затем сделать то же самое с 40%, 60%, 80%. Вы должны увидеть как большую производительность с большим количеством данных, но и более низкую дисперсию в разных случайных выборках
  5. получить ручку на дисперсию из-за размера тестовых данных, выполните ту же процедуру в обратном порядке. Тренируйтесь на всех ваших данных обучения, а затем случайным образом выборка процент вашего проверка данные несколько раз, и проверить работу. Теперь вы должны найти что средняя производительность на небольших выборках ваших данных проверки примерно такая же, как производительность на всех данных проверки, но дисперсия намного выше с меньшим количеством тестовых образцов

вы были бы удивлены, узнав, что 80/20 является довольно часто встречающимся соотношением, часто называемым принцип Парето. Обычно это безопасная ставка, если вы используете это соотношение.

однако, в зависимости от используемой методики обучения/проверки, соотношение может измениться. Например: если вы используете 10-кратную перекрестную проверку, то вы получите набор проверки 10% при каждом сгибе.

там были некоторые исследования в как правильно соотношение между обучающим и проверочным наборами:

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

в своем заключении они указывают формулу:

набор валидации (V) для обучающей выборки (Т) размер, в/Т, Весы, как ln (N/h-max), где N-число семейств распознавателей и х-макс это самая большая сложность этих семей.

что они подразумевают под сложностью:

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

принимая первое эмпирическое правило (т. е. набор проверки должен быть обратно пропорционален квадратному корню из количество свободных регулируемых параметров), вы можете заключить, что если у вас есть 32 регулируемых параметров, квадратный корень из 32 составляет ~5,65, доля должна быть 1/5.65 или 0,177 (v/t). Примерно 17,7% должны быть зарезервированы для проверки и 82,3% для обучения.

в прошлом году я следил за проф: Эндрю Нг онлайн курс машинного обучения. Его рекомендация была

обучение: 60%

перекрестная проверка: 20%

испытание: 20%

Ну вы должны подумать еще об одной вещи.

Если у вас действительно большой набор данных, например 10 000 000 примеров, разделение 80/10/10 может быть ненужным, потому что 10% = 100000 примеров не нужно, чтобы сказать, что модель работает нормально.

возможно, 99/0. 5/0.5 достаточно, потому что 5000 примеров могут представлять большую часть дисперсии в данных, и вы можете легко сказать, что модель работает хорошо на основе этих 5000 примеров в тесте и dev.

возможно, 63,2% / 36,8% является разумным выбором. Причина была бы в том, что если бы у вас был общий размер выборки n и хотел, чтобы случайным образом образца с заменой (более.к.а. повторный отбор проб, а в статистический бутстрап) n случаи из начальной n, вероятность выбора отдельного случая в повторной выборке будет приблизительно 0,632, при условии, что n не слишком мал, как объясняется здесь: https://stats.stackexchange.com/a/88993/16263

пример n = 250, вероятность выбора отдельного случая для повторной выборки до 4 цифр равна 0,6329. Для образца n=20000, вероятность 0.6321.

все зависит от имеющихся данных. Если у вас есть значительный объем данных, то 80/20 является хорошим выбором, как упоминалось выше. Но если вы не выполняете перекрестную проверку с разделением 50/50, это может помочь вам намного больше и предотвратить создание модели, которая будет соответствовать вашим учебным данным.

Comments

    Ничего не найдено.