Подробное описание вложенной перекрестной проверки

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

Оптимизация или настройка гиперпараметров - это процесс выбора набора гиперпараметров для алгоритма машинного обучения, который лучше всего подходит для определенного набора данных.

И перекрестная проверка, и оптимизация гиперпараметров - важный аспект проекта в области науки о данных. Перекрестная проверка используется для оценки производительности алгоритма машинного обучения, а настройка гиперпараметров используется для поиска наилучшего набора гиперпараметров для этого алгоритма машинного обучения.

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

Сравнение производительности невложенных и вложенных стратегий CV для набора данных Iris с использованием классификатора опорных векторов. Посмотреть график производительности вы можете ниже, из этой статьи.

Что такое вложенная перекрестная проверка и ее реализация?

Вложенная перекрестная проверка (Nested-CV) включает перекрестную проверку и настройку гиперпараметров. Он используется для оценки производительности алгоритма машинного обучения, а также для оценки ошибки обобщения базовой модели и ее поиска по гиперпараметрам.

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



Шаг 1. Обучите тестовый сплит:

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

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

Шаг 2: Внешнее резюме:

Алгоритм машинного обучения выбирается на основе его производительности во внешнем цикле вложенной перекрестной проверки. k-кратная перекрестная проверка или процедура StaratifiedKfold может быть реализована для внешнего цикла в зависимости от несбалансированности данных, чтобы поровну разделить данные на k-кратные свертки или группы.

  • k-кратное резюме: эта процедура разбивает данные на k кратных сводок или групп. (k-1) групп будут назначены для обучения, а оставшаяся группа - для проверки данных. Этот шаг повторяется для k-шагов, пока все группы не участвуют в проверке данных.
  • StatifiedKfold CV: Эта процедура аналогична k-кратному резюме. Здесь набор данных разделен на k групп или складок, так что данные проверки и обучения имеют равное количество экземпляров метки целевого класса. Это гарантирует, что один конкретный класс не присутствует в данных проверки или обучения, особенно когда набор данных несбалансирован.

k-кратное или стратифицированное k-кратное CV можно выбрать для внешнего CV в зависимости от дисбаланса набора данных.

Шаг 3: Внутреннее резюме:

Затем внутреннее CV применяется к (k-1) сгибам или набору данных групп из внешнего CV. Набор параметров оптимизируется с помощью GridSearch и затем используется для настройки модели. Лучшая модель, возвращенная из GridSearchCV или RandomSearchCV, затем оценивается с использованием последней свертки или группы. Этот метод повторяется k раз, и окончательная оценка CV рассчитывается путем взятия среднего значения всех k оценок.

Шаг 4: настройка гиперпараметра:

Пакет Scikit-learn содержит реализацию GridSearchCV и RandomSearchCV. Эти методы поиска возвращают лучшую модель машинного обучения, настраивая заданные параметры.

Шаг 5: Установите окончательную модель:

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

Реализация Python:

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

Стоимость вложенного резюме:

Использование Nested-CV значительно увеличивает обучение и оценку моделей. Если n * k моделей обучаются для невложенных CV, то количество обучаемых моделей увеличивается до k * n * k.

Заключение:

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

Использование nested-CV резко увеличивает количество оценок модели и, следовательно, увеличивает временную сложность. Не рекомендуется, если набор данных слишком велик или ваша система неэффективна.

Спасибо за чтение