Введение

Перекрестная проверка — это метод проверки, часто используемый в машинном обучении, и в этой статье мы рассмотрим, как К-кратная перекрестная проверка (К-кратное резюме) работает и как ее использовать (К — это часто устанавливается равным 5 или 10 в зависимости от размера данных).

Рабочий процесс

Перекрестная проверка имеет 2 основных применения, но рабочий процесс аналогичен.

  1. Разделение данных на набор для обучения и тестирования (80/20 — популярный выбор).
  2. Выполняйте перекрестную проверку ТОЛЬКО на обучающем наборе на всех моделях и выбирайте модель с наилучшей производительностью.
  3. Обучите модель, которую мы выбрали на шаге 2, на всем тренировочном наборе.
  4. Оцените итоговую производительность модели на тестовом наборе.

Детальное объяснение

1. Разделение данных на наборы для обучения и тестирования

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

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

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

2. Выполните перекрестную проверку ТОЛЬКО для обучающего набора на всех моделях и выберите модель с наилучшей производительностью

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

Что нам теперь делать? Мы берем среднее из этих показателей и представляем его как нашу оценку производительности модели.

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

Основная идея K-кратного CV (K=5) такова.

Важно отметить, что два варианта использования перекрестной проверки различаются только на этом этапе.

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

⚡ Для каждой модели-кандидата фиксированы гиперпараметры! Что такое гиперпараметры? Это внешние параметры, определяемые перед обучением модели. Они фиксируются после определения пользователями, например, максимальная глубина дерева решений.

  • Второе использование K-fold CV как раз для сравнения различных гиперпараметров одной модели и выбора наилучшей комбинации. Например, дерево решений имеет такие гиперпараметры, как максимальная глубина дерева и критерий разделения. Мы можем установить максимальную глубину дерева равной 3, 4 или 5, критерий разделения — джини или энтропия, затем объединить поиск по сетке и K-кратное CV, чтобы найти наилучшую комбинацию гиперпараметров (см. Эта статья подробнее).

Короче говоря, мы запускаем K-кратное CV для каждого кандидата (кандидаты — это разные модели или разные гиперпараметры), затем мы выбираем тот, у которого наилучшая средняя точность. Эта средняя точность, по сути, является нашей оценкой производительности модели, которая более надежна, чем метод удержания, поскольку обучающая выборка меняется, а случайность уменьшается.

В следующем примере показано, как мы используем K-кратное CV для выбора гиперпараметров.

⚡ Некоторые говорят, что набор для проверки и набор для тестирования взаимозаменяемы, и на этом этапе используют термин набор для тестирования. Однако тестовый набор должен использоваться ТОЛЬКО при окончательной оценке производительности модели, а не при оценке. Таким образом, я бы сказал, что зеленая часть должна и может называться только проверочным набором.

3. Обучите модель, которую мы выбрали на шаге 2, на всей обучающей выборке

Хотя мы выбираем модель/гиперпараметры с наивысшей средней производительностью, у нас есть не просто обученная модель, у нас есть K моделей. Дело в том, что нам нужна только 1 модель. Чтобы оценить окончательную производительность модели, мы обучаем выбранную модель на ВСЕМ обучающем наборе, который представляет собой обучающий И проверочный набор на последнем шаге.

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

4. Оцените итоговую производительность модели на тестовом наборе

Помните, у нас есть изолированный набор для тестирования? Мы используем обученную модель на шаге 3 и оцениваем окончательную производительность на этом тестовом наборе, который НИКОГДА не используется на этапе обучения. Неиспользование на этапе обучения имеет решающее значение, но у нашей модели нет шансов обмануть, заранее изучив распределение данных тестирования. Следовательно, оценка производительности оправдана.

Теперь давайте посмотрим на примере последних 2 шагов.

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

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

Рекомендации

  1. https://machinelearningmastery.com/k-fold-cross-validation/