Как судить о том, что контролируемая модель машинного обучения подходит или нет?

27

Может кто-нибудь сказать мне, как судить, модель контролируемого машинного обучения переоснащение или нет? Если у меня нет внешнего набора данных проверки, я хочу знать, могу ли я использовать ROC с 10-кратной перекрестной проверкой, чтобы объяснить переобучение. Если у меня есть внешний набор данных проверки, что мне делать дальше?

user22062
источник

Ответы:

29

Вкратце: проверяя вашу модель. Основная причина валидации состоит в том, чтобы утверждать, что не происходит наложения, и оценивать обобщенную производительность модели.

Overfit

Сначала давайте посмотрим, что такое переоснащение. Модели обычно обучаются подгонять набор данных, сводя к минимуму некоторые потери в тренировочном наборе. Тем не менее, существует ограничение, при котором минимизация этой ошибки обучения больше не будет способствовать повышению истинной производительности моделей, а только минимизирует ошибку в конкретном наборе данных. По сути, это означает, что модель была слишком плотно подогнана к конкретным точкам данных в обучающем наборе, пытаясь смоделировать шаблоны в данных, происходящих из шума. Эта концепция называется overfit . Пример переодевания показан ниже, где вы видите тренировочный набор в черном цвете и больший набор из фактического населения на заднем плане. На этом рисунке вы можете видеть, что синяя модель слишком плотно прилегает к тренировочному набору, моделируя основной шум. введите описание изображения здесь

Чтобы судить о том, является ли модель переоснащенной или нет, нам нужно оценить обобщенную ошибку (или производительность), которую модель будет иметь в будущих данных, и сравнить ее с нашими характеристиками на тренировочном наборе. Оценить эту ошибку можно несколькими способами.

Разделение набора данных

Наиболее простой подход к оценке обобщенной производительности заключается в разделении набора данных на три части: обучающий набор, набор проверки и набор тестов. Набор для обучения используется для обучения модели для подгонки данных, набор для проверки используется для измерения различий в производительности между моделями, чтобы выбрать лучшую, и набор тестов, чтобы утверждать, что процесс выбора модели не соответствует первому. два набора.

Чтобы оценить количество перегрузки, просто оцените ваши метрики интереса на тестовом наборе в качестве последнего шага и сравните его с вашими результатами на тренировочном наборе. Вы упоминаете ROC, но, по моему мнению, вам также следует обратить внимание на другие метрики, такие как, например, показатель Бриера или калибровочный график, чтобы обеспечить производительность модели. Это, конечно, зависит от вашей проблемы. Есть много метрик, но это не главное здесь.

Этот метод очень распространен и уважаем, но он предъявляет большие требования к доступности данных. Если ваш набор данных слишком мал, вы, скорее всего, потеряете большую производительность, и ваши результаты будут смещены при разделении.

Перекрестная проверка

Один из способов избежать потери значительной части данных для проверки и тестирования состоит в том, чтобы использовать перекрестную проверку (CV), которая оценивает обобщенную производительность с использованием тех же данных, которые используются для обучения модели. Идея, лежащая в основе перекрестной проверки, состоит в том, чтобы разбить набор данных на определенное количество подмножеств, а затем по очереди использовать каждый из этих подмножеств как удерживаемые тестовые наборы, а остальные данные использовать для обучения модели. Усреднение метрики по всем сгибам даст вам оценку производительности модели. Окончательная модель обычно обучается с использованием всех данных.

Тем не менее, оценка CV не беспристрастна. Но чем больше сгибов вы используете, тем меньше смещение, но вместо этого вы получите большую дисперсию.

Как и в случае разделения набора данных, мы получаем оценку производительности модели, и для оценки перегрузки вы просто сравниваете показатели из своего резюме с показателями, полученными в результате оценки показателей в вашем обучающем наборе.

начальная загрузка

Идея, лежащая в основе начальной загрузки, аналогична CV, но вместо того, чтобы разбивать набор данных на части, мы вводим случайность в обучение, многократно рисуя обучающие наборы из всего набора данных с заменой и выполняя полную фазу обучения на каждой из этих выборок начальной загрузки.

Самая простая форма проверки при начальной загрузке просто оценивает метрики на выборках, не найденных в обучающем наборе (то есть те, которые пропущены) и усредняют по всем повторениям.

Этот метод даст вам оценку производительности модели, которая в большинстве случаев менее смещена, чем CV. Опять же, сравнивая его с показателями тренировочного набора, вы получаете наряд.

Существуют способы улучшить проверку начальной загрузки. Известно, что метод .632+ дает более качественные и надежные оценки обобщенной производительности модели с учетом переобучения. (Если вас интересует оригинальная статья, прочитайте ее: Усовершенствования перекрестной проверки: метод начальной загрузки 632+ )

Надеюсь, это ответит на ваш вопрос. Если вы заинтересованы в проверке модели, я рекомендую прочитать часть, посвященную проверке, в книге . Элементы статистического обучения: интеллектуальный анализ данных, логический вывод и предсказание, которые свободно доступны онлайн.

в то время как
источник
2
Обратите внимание, что ваша терминология валидации и тестирования соблюдается не во всех полях. Например, в моей области (аналитическая химия) валидация - это процедура, которая должна доказать, что модель работает хорошо (и измерить, насколько хорошо она работает). Это делается с окончательной моделью, дальнейшие изменения не допускаются после этого (или, если вы это сделаете, вам нужно будет еще раз проверить с независимыми данными). Поэтому я бы назвал ваш набор проверки «внутренним набором тестов» или «набором тестов оптимизации». «Внешние» данные испытаний не предотвращают переоснащение, но их можно использовать для измерения степени переоснащения.
cbeleites поддерживает Монику
Хорошо, у меня нет опыта в вашей области. Благодарю за разъяснение. Вероятно, то же самое и в других областях. Я просто использовал терминологию, использованную в книге, с которой я связан в конце. Надеюсь, это не слишком запутанно.
пока
7

Вот как вы можете оценить степень переоснащения:

  • Получите оценку внутренней ошибки. Либо повторное замещение (= прогнозирование данных обучения), либо, если вы выполняете внутреннюю перекрестную «проверку» для оптимизации гиперпараметров, также эта мера будет представлять интерес.
  • Получите оценку ошибки независимого набора тестов. Обычно рекомендуется повторная выборка (повторная перекрестная проверка или выход из начальной загрузки *. Но нужно быть осторожным, чтобы не было утечек данных. Т.е. цикл повторной выборки должен пересчитать все этапы, в которых расчеты охватывают более одного случая. этапы обработки, такие как центрирование, масштабирование и т. д. Кроме того, убедитесь, что вы разделяете на самом высоком уровне, если у вас есть «иерархическая» (также известная как «кластерная») структура данных, например, повторные измерения, например, одного и того же пациента (=> повторная выборка пациентов) ).
  • Затем сравните, насколько лучше выглядит «внутренняя» оценка ошибки, чем независимая.

Вот пример:
переобучения
Trefferrate = коэффициент попадания (% правильно классифицирован), Variablenzahl = количество переменных (= сложность модели)
Символы:. повторное замещение, + внутренняя оценка безразличия оптимизатора гиперпараметров, o независимая перекрестная проверка на уровне пациента

Это работает с ROC или показателями производительности, такими как оценка Бриера, чувствительность, специфичность, ...

* Я не рекомендую .632 или .632+ загрузчик здесь: они уже смешиваются с ошибкой повторного замещения: вы можете в любом случае вычислить их позже из ваших оценок повторного замещения и исходных данных.

cbeleites поддерживает Монику
источник
0

Переоснащение - это просто прямое следствие рассмотрения статистических параметров и, следовательно, полученных результатов, как полезной информации без проверки того, что они не были получены случайным образом. Поэтому, чтобы оценить наличие переобучения, мы должны использовать алгоритм в базе данных, эквивалентной реальной, но со случайно сгенерированными значениями, повторяя эту операцию много раз, мы можем оценить вероятность получения равных или лучших результатов случайным образом. , Если эта вероятность высока, мы, скорее всего, в ситуации перегрузки. Например, вероятность того, что полином четвертой степени имеет корреляцию 1 с 5 случайными точками на плоскости, равна 100%, поэтому эта корреляция бесполезна, и мы находимся в ситуации переобучения.

Андреа Бердондини
источник