Как выбрать модель из этого вывода [внешней перекрестной проверки]?
Краткий ответ: нет.
Рассматривайте внутреннюю перекрестную проверку как часть процедуры подбора модели. Это означает, что подгонка, включая подгонку гиперпараметров (именно здесь скрывается внутренняя перекрестная проверка), аналогична любой другой процедуре оценки модели.
Внешняя перекрестная проверка оценивает эффективность этого подхода подбора моделей. Для этого вы используете обычные предположения
- на внешние модели суррогатных эквивалентны «реальной» модели , построенной со всеми данными.k
model.fitting.procedure
- Или, в случае 1. отказа (пессимистическое смещение проверки повторной выборки), по крайней мере, внешних суррогатных моделей эквивалентны друг другу.
Это позволяет объединять (усреднять) результаты теста. Это также означает, что вам не нужно выбирать среди них, так как вы предполагаете, что они в основном одинаковы. Нарушение этого второго, более слабого предположения - нестабильность модели.k
Вы не выбирает, казалось бы , лучшие из суррогатных моделей - это, как правило , быть просто «сбор урожая» неопределенностью тестирования и приводит к оптимистическому уклону.k
Итак, как я могу использовать вложенное резюме для выбора модели?
Внутреннее резюме делает выбор.
Мне кажется, что выбор лучшей модели из этих K выигрышных моделей не был бы честным сравнением, поскольку каждая модель была обучена и протестирована на разных частях набора данных.
Вы правы в том, что не стоит выбирать одну из суррогатных моделей. Но вы не правы по поводу причины. Реальная причина: см. Выше. То, что они не обучены и не проверены на одних и тех же данных, здесь не «обидно».k
- Отсутствие тех же данных тестирования: поскольку впоследствии вы хотите утверждать, что результаты теста обобщаются на данные, которые никогда не видели, это не может иметь значения.
- Не имея те же данные обучения:
- если модели стабильны, это не имеет значения: «Стабильность» здесь означает, что модель не изменяется (сильно), если данные обучения «возмущены», заменяя несколько случаев другими случаями.
- если модели нестабильны, важны три соображения:
- вы можете измерить, в какой степени это имеет место, с помощью повторной / повторной кратной перекрестной проверки. Это позволяет сравнивать результаты перекрестной проверки для одного и того же случая, который был предсказан различными моделями, построенными на слегка отличающихся данных обучения.k
- Если модели не являются стабильными, дисперсия, наблюдаемая по результатам теста перекрестной проверки в кратном размере, увеличивается: вы не только получаете дисперсию из-за того, что всего конечное количество случаев тестируется в целом, но и имеют дополнительную дисперсию из-за нестабильности моделей (отклонения в прогнозирующих способностях).k
- Если нестабильность является реальной проблемой, вы не можете хорошо экстраполировать на производительность для «реальной» модели.
Что подводит меня к вашему последнему вопросу:
Какие виды анализа / проверок я могу сделать с оценками, которые я получаю из внешних K-сгибов?
- проверка стабильности прогнозов (используйте повторную / повторную перекрестную проверку)
проверить стабильность / изменение оптимизированных гиперпараметров.
Во-первых, дико разбросанные гиперпараметры могут указывать на то, что внутренняя оптимизация не сработала. Во-вторых, это может позволить вам принять решение о гиперпараметрах без дорогостоящего шага оптимизации в подобных ситуациях в будущем. С дорогостоящим я не обращаюсь к вычислительным ресурсам, но к факту, что эта информация «затрат», которая может лучше использоваться для оценки «нормальных» параметров модели.
проверьте разницу между внутренней и внешней оценкой выбранной модели. Если есть большая разница (внутренняя сущность очень переоптимистична), есть риск, что внутренняя оптимизация не сработала из-за переоснащения.
Вопрос update @ user99889: что делать, если внешнее резюме обнаруживает нестабильность?
Прежде всего, обнаружение во внешнем цикле CV того, что модели не дают стабильных предсказаний в этом отношении, на самом деле не отличается от обнаружения того, что ошибка предсказания слишком высока для приложения. Это один из возможных результатов валидации (или верификации) модели, подразумевающей, что имеющаяся у нас модель не подходит для своей цели.
В комментарии, отвечающем на @davips, я думал о том, чтобы решить проблему нестабильности во внутреннем резюме - то есть как часть процесса оптимизации модели.
Но вы, безусловно, правы: если мы изменим нашу модель, основываясь на результатах внешнего резюме, потребуется еще один раунд независимого тестирования измененной модели.
Однако нестабильность во внешнем резюме также будет признаком того, что оптимизация не была настроена должным образом - поэтому обнаружение нестабильности во внешнем резюме подразумевает, что внутреннее резюме не наказывало нестабильность необходимым способом - это было бы моей главной целью Критика в такой ситуации. Другими словами, почему оптимизация позволяет / приводит к сильному набору моделей?
Тем не менее, здесь есть одна особенность, что IMHO может оправдать дальнейшее изменение «окончательной» модели после тщательного рассмотрения точных обстоятельств : поскольку мы действительно обнаружили переоснащение, любое предлагаемое изменение (меньшее df / больше ограничительного или агрегирующего) в модель быть в направлении меньшего переоснащения (или, по крайней мере, гиперпараметров, которые менее склонны к переоснащению). Смысл независимого тестирования заключается в обнаружении переоснащения - недостаточное подкрепление может быть обнаружено по данным, которые уже использовались в процессе обучения.
Поэтому, если мы говорим, скажем, о дальнейшем уменьшении количества скрытых переменных в модели PLS, которые были бы сравнительно мягкими (если предлагаемое изменение будет моделью совершенно другого типа, скажем, PLS вместо SVM, все ставки будут отменены ), и я был бы еще более раскован, если бы знал, что мы все равно находимся на промежуточной стадии моделирования - в конце концов, если оптимизированные модели все еще нестабильны, нет сомнений в том, что нужно больше случаев. Кроме того, во многих ситуациях вам в конечном итоге потребуется провести исследования, предназначенные для надлежащего тестирования различных аспектов производительности (например, обобщение данных, полученных в будущем). Тем не менее, я бы настаивал на том, что весь процесс моделирования необходимо будет сообщать, и что последствия этих поздних изменений должны быть тщательно обсуждены.
Кроме того, агрегация, включающая в себя аналоговую CV-оценку производительности и готовую оценку , будет возможна на основе уже имеющихся результатов, что является другим типом «постобработки» модели, которую я хотел бы рассмотреть здесь как доброкачественную. Опять же, тогда было бы лучше, если бы исследование было разработано с самого начала, чтобы проверить, что агрегация не дает преимущества перед отдельными предрассудками (что является еще одним способом сказать, что отдельные модели стабильны).
Обновление (2019): чем больше я думаю об этих ситуациях, тем больше я предпочитаю подход «вложенная перекрестная проверка, очевидно, без вложенности» .
В дополнение к отличному ответу cebeleites (+1), основная идея состоит в том, что перекрестная проверка используется для оценки эффективности метода подбора модели, а не самой модели. Если вам необходимо выполнить выбор модели, то вам нужно выполнить это независимо в каждом из этапов процедуры перекрестной проверки, поскольку это является неотъемлемой частью процедуры подбора модели. Если вы используете процедуру выбора модели на основе перекрестной проверки, это означает, что вы получите вложенную перекрестную проверку. Полезно рассмотреть цель каждой перекрестной проверки - одна для выбора модели, другая для оценки производительности.
Я бы сделал свою окончательную модель путем подгонки модели (включая выбор модели) ко всему набору данных, после использования вложенной перекрестной проверки, чтобы получить представление о производительности, которую я могу разумно ожидать от этой модели.
источник
get an idea of the performance
?Я не думаю, что кто-то действительно ответил на первый вопрос. Под «вложенной перекрестной проверкой» я думаю, что он имел в виду объединить ее с GridSearch. Обычно GridSearch имеет встроенное резюме и принимает параметр, сколько сгибов мы хотим протестировать. Комбинируя эти два, я думаю, что это хорошая практика, но модель из GridSearch и CrossValidation не является вашей окончательной моделью. Вы должны выбрать лучшие параметры и в конечном итоге обучить новую модель всем вашим данным или даже провести CrossValidation здесь для невидимых данных, а затем, если модель действительно настолько хороша, вы обучаете ее всем своим данным. Это ваша последняя модель.
источник
GridSearchCV(refit=True)
действительно обновляется модель на ПОЛНЫХ данных, используя лучшие параметры, так что дополнительный шаг не требуется. См. Документы