Вложенная перекрестная проверка против переобучения

В задачах машинного обучения мы проверяем наши модели с помощью проверочного набора, чтобы они не подгонялись. На самом деле мы используем подход перекрестной проверки, чтобы убедиться, что этот набор проверки постоянно меняется, чтобы не выбирать лучшую модель путем косвенного переобучения к фиксированному набору проверки. Но даже если мы используем перекрестную проверку, наша модель, вероятно, удивит нас, учитывая невидимые дополнительные тестовые данные. На самом деле, некоторые из популярных методов, которые мы используем, позволяют нашей модели принимать некоторые решения путем подгонки к проверочному набору.
Самые популярные из них:
- Оптимизация гиперпараметров
- Выбор функции
- Ранняя остановка
Когда вы пытаетесь найти оптимальный параметр или набор функций для своей модели с заданными данными, используя K-Fold или любую схему перекрестной проверки, вы косвенно передаете характеристики набора данных своей модели. Таким образом, ваша модель сводится к гиперпараметру или набору функций, которые будут хорошо работать во всем наборе данных. Скорее всего, он будет плохо работать в сценарии с невидимыми данными.
Случай ранней остановки
При обучении модели с перекрестной проверкой вы прекращаете обучение своей модели досрочно, просматривая набор проверки. На самом деле ваша модель косвенно переобучает разделение проверки. Эта схема также не позволяет моделировать сценарий невидимых данных.
Вложенная перекрестная проверка
С вложенной перекрестной проверкой вы сможете выполнять два приложения, о которых я снова упоминал выше, используя схему перекрестной проверки, а также вы узнаете производительность своей модели на невидимых данных.
Стандартная перекрестная проверка
Обычно, когда вы пытаетесь обучить свою модель с помощью схемы перекрестной проверки, вы должны использовать стандартный цикл, подобный приведенному ниже:
Но у этой схемы есть недостатки, о которых я упоминал выше.
Вложенный вариант

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