Когда вы пытаетесь подогнать модели к большому набору данных, общий совет - разбить данные на три части: набор данных обучения, проверки и тестирования.
Это связано с тем, что модели обычно имеют три «уровня» параметров: первый «параметр» - это класс модели (например, SVM, нейронная сеть, случайный лес), второй набор параметров - это параметры «регуляризации» или «гиперпараметры» ( например, коэффициент штрафа Лассо, выбор ядра, структура нейронной сети) и третий набор - это то, что обычно считается «параметрами» (например, коэффициенты для ковариат).
Учитывая класс модели и выбор гиперпараметров, выбирают параметры, выбирая параметры, которые минимизируют ошибки в обучающем наборе. Учитывая класс модели, можно настроить гиперпараметры, минимизировав ошибку на множестве проверки. Один выбирает класс модели по производительности на тестовом наборе.
Но почему не больше разделов? Часто можно разделить гиперпараметры на две группы и использовать «проверку 1», чтобы соответствовать первой, и «проверку 2», чтобы соответствовать второй. Или можно даже рассматривать размер разделения обучающих данных / проверочных данных как гиперпараметр, подлежащий настройке.
Это уже распространенная практика в некоторых приложениях? Есть ли теоретическая работа по оптимальному разделению данных?
источник
Это интересный вопрос, и я нашел, что это полезно с ответом от @Wayne.
Насколько я понимаю, разделение набора данных на различные разделы зависит от цели автора и требований модели в реальных приложениях.
Обычно у нас есть два набора данных: обучение и тестирование. Обучающий используется для определения параметров моделей или подгонки моделей. Тестирование используется для оценки производительности модели в невидимых данных (или данных реального мира).
Если мы просто сделаем один шаг в обучении, очевидно, что есть процесс обучения и тестирования (или проверки).
Тем не менее, при таком способе может возникнуть проблема чрезмерной подгонки, когда модель обучается с одним набором данных, один раз. Это может привести к нестабильности модели в реальных условиях проблемы. Одним из способов решения этой проблемы является перекрестная проверка (CV) модели в наборе обучающих данных. Это означает, что мы разделяем обучающий набор данных на разные сгибы, сохраняем один сгиб для тестирования модели, которая тренируется с другими сгибами. Теперь победителем становится тот, кто дает минимальные потери (в зависимости от нашей собственной целевой функции) во всем процессе CV. Поступая таким образом, мы можем быть уверены, что минимизируем вероятность переучивания в тренировочном процессе, и выбираем правильного победителя. Набор тестов снова используется для оценки победителя по невидимым данным.
источник