Вопрос неверен. Многие люди делают то, что вы говорите, они «не могут» делать.
Фактически, реализация поиска по сетке в широко развернутом пакете sklearn делает именно это. Если только refit=False
он не переучит окончательную модель, используя все данные.
Я думаю, что для некоторых гиперпараметров это может быть не очень желательно, потому что они относятся к объему данных. Например, рассмотрим min_samples_leaf
тактику предварительного сокращения дерева решений . Если у вас есть больше данных, предварительное сокращение может работать не так, как вы хотите.
Но опять же, большинство людей фактически переучивают, используя все данные после перекрестной проверки, чтобы они в итоге получили наилучшую возможную модель.
Приложение: @NeilSlater говорит ниже, что некоторые люди проводят задержку над CV. Другими словами, они разбивают поезд-тест, а затем выполняют выбор модели на тренировке. По его словам, они переобучаются с использованием оригинального тренировочного комплекта, но не тестирующего. Затем набор тестов используется для выполнения окончательной оценки модели. Лично я вижу в этом три недостатка: (а) это не решает проблему, о которой я говорил, некоторые гиперпараметры зависят от объема обучения, так как вы все равно переобучаетесь, (б) при тестировании многих моделей я предпочитаю более сложные такие методы, как вложенная перекрестная проверка, так что никакие данные не расходуются впустую, и (c) задержка - ужасный метод, позволяющий сделать вывод о том, как модель будет обобщаться, когда у вас мало данных.