Тестовый набор и набор перекрестной проверки имеют разные цели. Если вы откажетесь от одного из них, вы потеряете его преимущества:
Набор перекрестной проверки используется, чтобы помочь выявить чрезмерную подгонку и помочь в поиске гиперпараметров.
Тестовый набор используется для измерения производительности модели.
Вы не можете использовать набор перекрестной проверки для точного измерения производительности вашей модели, потому что вы намеренно настроите свои результаты, чтобы получить наилучший возможный показатель, возможно, по сотням вариаций ваших параметров. Поэтому результат перекрестной проверки, вероятно, будет слишком оптимистичным.
По той же причине вы не можете отбросить набор перекрестной проверки и использовать набор тестов для выбора гиперпараметров, потому что тогда вы в значительной степени гарантированно будете переоценивать, насколько хороша ваша модель. В идеальном мире вы используете набор тестов только один раз или используете его «нейтрально» для сравнения различных экспериментов.
Если вы пройдете перекрестную проверку, найдете лучшую модель, а затем добавите в тестовые данные для обучения, возможно (а в некоторых ситуациях, возможно, вполне вероятно) ваша модель будет улучшена. Однако у вас нет возможности быть уверенным, действительно ли это произошло, и даже если это произойдет, у вас нет объективной оценки того, что представляет собой новая производительность.
Из многих соревнований Kaggle я узнал, что настройка на тестовый набор путем чрезмерного использования - это реальная вещь, и это сильно влияет на эти соревнования. Часто есть группа конкурентов, которые поднялись на публичную таблицу лидеров и выбрали свою лучшую модель в тесте (публичная таблица лидеров - это, по сути, набор тестов), хотя и не настолько тщательна в перекрестной проверке. , , эти конкуренты выпадают из списка лидеров, когда в конце вводится новый набор тестов.
Один из подходов, который является разумным, состоит в том, чтобы повторно использовать данные (train + cv) для повторного обучения, используя найденные вами гиперпарамы, перед тестированием. Таким образом, вы тренируетесь на большем количестве данных, и в конце вы все равно получаете независимую оценку производительности.
Если вы хотите получить больше от перекрестной проверки, обычным подходом является перекрестная проверка в k-кратном размере . Обычная хитрость в соревнованиях Kaggle - использовать перекрестную проверку в k-кратном порядке и вместо повторного объединения данных в больший (обучающий + cv) обучающий набор для объединения или объединения результатов cv в метамодель.
Наконец, всегда проверяйте, что ваши расщепления для проверки и проверки являются устойчивыми к возможной корреляции в вашем наборе данных.