Когда мы проводим перекрестную проверку в k-кратном порядке, должны ли мы просто использовать классификатор, который имеет самую высокую точность теста? Каков обычно лучший подход в получении классификатора от перекрестной проверки?
machine-learning
cross-validation
Армон Сафай
источник
источник
Ответы:
Вы выполняете перекрестную проверку, когда хотите выполнить одно из следующих двух действий:
Выбор модели может происходить по разным сценариям:
(обратите внимание, что если вы оба выбираете алгоритм - лучше назвать его моделью - а также выполняете поиск гиперпараметров, вам необходимо выполнить Nested Cross Validation. Действительно ли Nested-CV необходим? )
Перекрестная проверка в некоторой степени гарантирует, что оценка погрешности является самой близкой возможной ошибкой обобщения для этой модели (хотя ее очень трудно приблизить). Наблюдая за средней ошибкой среди сгибов, вы можете получить хорошую проекцию ожидаемой ошибки для модели, построенной на полном наборе данных. Также важно наблюдать за отклонением прогноза, это то, насколько погрешность изменяется от кратности к кратности. Если отклонение слишком велико (значительно различаются значения), модель будет нестабильной. Самозагрузка - другой метод, обеспечивающий хорошее приближение в этом смысле. Предлагаю внимательно прочитать раздел 7 книги «Элементы статистического обучения», свободно доступной по адресу: ELS-Standford
Как уже упоминалось ранее, вы не должны брать собранную модель ни в одну из складок. Вместо этого вам нужно перестроить модель с полным набором данных (тот, который был разбит на сгибы). Если у вас есть отдельный набор тестов, вы можете использовать его, чтобы попробовать эту окончательную модель, получив аналогичную (и, безусловно, более высокую) ошибку, чем та, которая получена в CV. Однако вы должны полагаться на предполагаемую ошибку, указанную в процедуре CV.
После выполнения CV с разными моделями (комбинация алгоритмов и т. Д.), Выберите ту, которая показала лучшие результаты в отношении ошибки и ее дисперсии между сгибами. Вам нужно будет перестроить модель со всем набором данных. Здесь возникает общая путаница в терминах: мы часто ссылаемся на выбор модели, полагая, что модель представляет собой готовую к прогнозу модель, построенную на данных, но в данном случае она относится к комбинации применяемых вами алгоритмов + процедур предварительной обработки. Таким образом, для получения фактической модели, необходимой вам для прогнозирования / классификации, вам необходимо построить ее, используя комбинацию победителей во всем наборе данных.
Последнее, на что следует обратить внимание, это то, что если вы применяете какую-либо предварительную обработку, использующую информацию о классе (выбор объектов, уменьшение размерности LDA и т. Д.), Это должно выполняться в каждом сгибе, а не ранее для данных. Это критический аспект. Следует делать то же самое, если вы применяете методы предварительной обработки, которые включают прямую информацию данных (PCA, нормализация, стандартизация и т. Д.). Однако вы можете применить предварительную обработку, которая не зависит от данных (удаление переменной по мнению эксперта, но это довольно очевидно). Это видео может помочь вам в этом направлении: резюме правильно и неправильно
Здесь, последнее приятное объяснение относительно предмета: резюме и выбор модели
источник
Нет. Вы не выбираете ни одного из k классификаторов, созданных во время перекрестной проверки в k раз. Прежде всего, цель перекрестной проверки состоит не в том, чтобы придумать прогностическую модель, а в том, чтобы оценить, насколько точно прогностическая модель будет работать на практике. Во-вторых, ради аргумента, скажем, вам пришлось использовать перекрестную проверку в k-кратном порядке с k = 10, чтобы выяснить, какой из трех различных алгоритмов классификации будет наиболее подходящим для решения данной проблемы классификации. В этом случае данные случайным образом разбиваются на k частей одинакового размера. Одна из частей зарезервирована для тестирования, а остальные части k-1 будут использованы для обучения. Процесс перекрестной проверки повторяется k (кратно) раз, так что на каждой итерации для тестирования используется разная часть. После выполнения перекрестной проверки вы смотрите на результаты каждого сгиба и задаетесь вопросом, какой алгоритм классификации (а не любая обученная модель!) Является наиболее подходящим. Вы не хотите выбирать алгоритм, который имеет наивысшую точность теста на одной из 10 итераций, потому что, возможно, просто случайно получилось, что данные теста на этой конкретной итерации содержали очень простые примеры, которые затем приводили к высокой точности теста. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точность что приводит к высокой точности испытаний. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точность что приводит к высокой точности испытаний. Что вы хотите сделать, это выбрать алгоритм, который дал наилучшую точностьусреднено по всем k сгибам . Теперь, когда вы выбрали алгоритм, вы можете тренировать его, используя все свои тренировочные данные, и начать делать прогнозы в дикой природе.
Это выходит за рамки этого вопроса, но вам также следует оптимизировать гиперпараметры модели (если таковые имеются), чтобы получить максимальную отдачу от выбранного алгоритма. Люди обычно выполняют оптимизацию гиперпараметров, используя перекрестную проверку.
источник
Итак, позвольте нам предположить, что у вас есть обучение, из которого вы используете 80% в качестве обучения, а остальные 20% в качестве данных проверки. Мы можем тренироваться на 80% и тестировать на оставшиеся 20%, но возможно, что 20%, которые мы взяли, не похожи на фактические данные тестирования и могут плохо работать последние. Таким образом, чтобы предотвратить это, мы можем использовать перекрестную проверку в k-кратном размере.
Итак, позвольте нам сказать, что у вас есть разные модели, и вы хотите знать, какая из них лучше работает с вашим набором данных, перекрестная проверка в k-кратном порядке отлично работает. Вы можете узнать об ошибках валидации по показателям k-validation и выбрать лучшую модель на основе этого. Обычно это является целью перекрестной проверки в k-кратном порядке.
Приведя только одну модель, и если вы проверяете с помощью k-кратной перекрестной проверки, вы можете получить приблизительную ошибку ошибок тестовых данных, но
when you are actually training it finally, you can use the complete training data
(поскольку здесь предполагается, что все данные вместе будут работать лучше, чем часть их) Иногда это может быть не так, но это общее предположение.)источник