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