Что такое перекрестная проверка? Сравнение моделей машинного обучения
Опубликовано: 2021-07-21Перекрестная проверка — бесценный инструмент для специалистов по данным.
Это полезно для создания более точных машинное обучение моделей и оценивая, насколько хорошо они работают на независимом тестовом наборе данных.
Перекрестная проверка проста для понимания и реализации, что делает ее удобным методом для сравнения прогностических возможностей (или навыков) различных моделей и выбора лучшей. Это полезно, когда количество доступных данных ограничено, и это отличный способ проверить, как прогностическая модель работает на практике.
Что такое перекрестная проверка?
Перекрестная проверка (CV) — это метод, используемый для оценки модели машинного обучения и проверки ее производительности (или точности). Это включает в себя резервирование определенного образца набора данных, на котором модель не обучена. Позже модель тестируется на этом образце для оценки.
Перекрестная проверка используется для защиты модели от переобучения , особенно если количество доступных данных ограничено. Он также известен как оценка вращения или тестирование вне выборки и в основном используется в настройках, где целью модели является прогнозирование.
Вы знали? Модель считается «переоснащенной», если она настолько хорошо моделирует обучающие данные, что это негативно влияет на ее производительность на новых данных.
Эта процедура повторной выборки также используется для сравнения различных моделей машинного обучения и определения того, насколько хорошо они работают для решения конкретной проблемы. Другими словами, перекрестная проверка — это метод, используемый для оценки навыков моделей машинного обучения.
Проще говоря, в процессе перекрестной проверки исходная выборка данных случайным образом делится на несколько подмножеств. Модель машинного обучения обучается на всех подмножествах, кроме одного. После обучения модель тестируется путем прогнозирования оставшегося подмножества.
Во многих случаях выполняется несколько раундов перекрестной проверки с использованием разных подмножеств, и их результаты усредняются, чтобы определить, какая модель является хорошим предиктором.
Почему перекрестная проверка важна?
Перекрестная проверка имеет решающее значение, когда количество доступных данных ограничено.
Предположим, вам нужно предсказать вероятность прокола велосипедной шины. Для этого вы собрали данные о существующих шинах: возраст шины, количество пройденных миль, вес ездока, а также были ли проколоты шины ранее.
Чтобы создать прогностическую модель, вы будете использовать эти (исторические) данные. С этими данными нужно сделать две вещи — обучить алгоритм и протестировать модель.
Вы знали? В машинном обучении алгоритм и модель — это не одно и то же. Модель — это то, чему научился алгоритм машинного обучения.
Поскольку у вас есть только ограниченный объем данных, было бы наивно использовать все данные для обучения алгоритма. Если вы сделаете это, у вас не останется никаких данных для тестирования или оценки модели.
Повторное использование обучающего набора в качестве тестового — не лучшая идея, поскольку нам нужно оценить точность модели на данных, на которых она не обучалась. Это потому, что основная цель обучения — подготовить модель к работе с реальными данными. И маловероятно, что ваш набор обучающих данных содержит все возможные точки данных, с которыми когда-либо столкнется модель.
Лучшей идеей было бы использовать первые 75 процентов (три блока) данных в качестве набора данных для обучения, а последние 25 процентов (один блок) — в качестве набора данных для тестирования . Это позволит вам сравнить, насколько хорошо разные алгоритмы классифицировали тестовые данные.
Но, конечно, откуда вы знаете, что использование первых 75 процентов данных в качестве тренировочного набора, а оставшихся 25 процентов в качестве тестового набора — лучший способ?
Вместо этого вы можете использовать первые 25 процентов данных для тестирования; или вы можете использовать третий блок данных в качестве набора тестовых данных, а остальные — в качестве набора обучающих данных.
Совет. Используйте программное обеспечение для машинного обучения, чтобы автоматизировать задачи и делать точные прогнозы.
В результате тип перекрестной проверки, называемый перекрестной проверкой k-fold, использует все (четыре) части набора данных в качестве тестовых данных по одной за раз, а затем суммирует результаты.
Например, перекрестная проверка будет использовать первые три блока данных для обучения алгоритма, а последний блок — для тестирования модели. Затем он записывает, насколько хорошо модель работала с тестовыми данными.
После записи производительности или точности он будет использовать 1-й, 2-й и 4-й блоки данных для обучения и 3-й блок для тестирования. Процесс продолжается до тех пор, пока все блоки не будут использованы один раз в качестве тестовых данных. Среднее значение всех результатов рассчитывается для оценки производительности модели.
В приведенном выше примере данные были разделены на четыре блока. Следовательно, эта перекрестная проверка называется 4-кратной перекрестной проверкой . Если бы его разделить на десять блоков, то это была бы 10-кратная перекрестная проверка .
Короче говоря, перекрестная проверка полезна для выбора модели и позволяет легко проверить, насколько хорошо модель обобщает новые данные.
Другими словами, полезно определить ошибку предсказания модели. Он также используется для сравнения производительности или точности различных методов машинного обучения, таких как метод опорных векторов (SVM), K-ближайший сосед (KNN), линейная регрессия или логистическая регрессия.
Вот еще несколько причин, по которым специалисты по данным любят перекрестную проверку:
- Позволяет им использовать все данные, не жертвуя каким-либо подмножеством (недопустимо для метода удержания)
- Выявляет согласованность данных и алгоритма
- Помогает избежать переобучения и недообучения
Перекрестная проверка также используется для настройки гиперпараметры модели машинного обучения с помощью метода, называемого перекрестной проверкой рандомизированного поиска по сетке .
Типы перекрестной проверки
Методы перекрестной проверки можно разделить на две категории: исчерпывающие и неисчерпывающие методы.
Как следует из названия, исчерпывающие методы перекрестной проверки стремятся протестировать все возможные способы разделения исходной выборки данных на обучающую и тестовую выборку. С другой стороны, неполные методы не учитывают все способы разделения исходных данных на наборы для обучения и оценки.
Ниже приведены пять распространенных типов перекрестной проверки.
1. Метод удержания
Метод удержания — один из основных подходов к перекрестной проверке, при котором исходный набор данных делится на две части — данные обучения и данные тестирования. Это не исчерпывающий метод, и, как и ожидалось, модель обучается на обучающем наборе данных и оценивается на тестовом наборе данных.
В большинстве случаев размер обучающего набора данных в два раза больше, чем тестового набора данных, то есть исходный набор данных разбивается в соотношении 80:20 или 70:30. Кроме того, данные случайным образом перемешиваются перед разделением на наборы для обучения и проверки.
Однако у этого метода перекрестной проверки есть некоторые недостатки. Поскольку модель обучается на разных комбинациях точек данных, она может демонстрировать разные результаты при каждом обучении. Кроме того, мы никогда не можем быть полностью уверены, что выбранный набор обучающих данных представляет собой весь набор данных.

Если исходная выборка данных не слишком велика, также есть вероятность, что тестовые данные могут содержать важную информацию, которую модель не сможет распознать, поскольку она не включена в обучающие данные.
Однако метод перекрестной проверки с задержкой идеально подходит, если вы спешите обучить и протестировать модель и имеете большой набор данных.
2. K-кратная перекрестная проверка
Метод k-кратной перекрестной проверки является улучшенной версией метода удержания. Это обеспечивает большую согласованность оценки модели, поскольку она не зависит от того, как мы выбираем набор данных для обучения и тестирования.
Это неисчерпывающий метод перекрестной проверки, и, как следует из названия, набор данных делится на k разбиений, а метод удержания выполняется k раз.
Например, если значение k равно двум, будет два подмножества одинакового размера. В первой итерации модель обучается на одной подвыборке и проверяется на другой. Во второй итерации модель обучается на подмножестве, которое использовалось для проверки в предыдущей итерации и тестировалось на другом подмножестве. Такой подход называется 2-кратной перекрестной проверкой .
Точно так же, если значение k равно пяти, подход называется методом 5-кратной перекрестной проверки и будет включать пять подмножеств и пять итераций. Кроме того, значение k произвольно. Как правило, значение k устанавливается равным 10. Если вы запутались при выборе значения, рекомендуется то же самое.
Процедура k-кратной перекрестной проверки начинается со случайного разделения исходного набора данных на k-кратное количество складок или подмножеств. На каждой итерации модель обучается на k-1 подмножествах всего набора данных. После этого модель тестируется на k-м подмножестве для проверки ее работоспособности.
Этот процесс повторяется до тех пор, пока все k-кратности не будут использованы в качестве оценочного множества. Результаты каждой итерации усредняются, и это называется точностью перекрестной проверки . Точность перекрестной проверки используется в качестве показателя производительности для сравнения эффективности различных моделей.
Метод k-кратной перекрестной проверки обычно создает менее предвзятые модели, поскольку каждая точка данных из исходного набора данных будет отображаться как в обучающем, так и в тестовом наборе. Этот способ оптимален, если у вас ограниченный объем данных.
Однако, как и ожидалось, этот процесс может занять много времени, так как алгоритм должен перезапускаться k раз с нуля. Это также означает, что он требует в k-1 раз больше вычислений, чем метод удержания.
3. Стратифицированная k-кратная перекрестная проверка
Поскольку мы случайным образом перемешиваем данные и разбиваем их на складки при k-кратной перекрестной проверке, есть вероятность, что в итоге мы получим несбалансированные подмножества. Это может привести к предвзятости обучения, что приведет к неточной модели.
Например, рассмотрим случай задачи бинарной классификации, в которой каждый из двух типов меток классов содержит 50 процентов исходных данных. Это означает, что оба класса присутствуют в исходной выборке в равных пропорциях. Для простоты назовем два класса А и В.
При перетасовке данных и разбиении их на складки существует высокая вероятность того, что мы получим складку, в которой большинство точек данных относится к классу A и лишь несколько — к классу B. Такое подмножество рассматривается как несбалансированное подмножество и может привести к созданию неточного классификатора.
Чтобы избежать таких ситуаций, складки расслаиваются с помощью процесса, называемого расслоением . При стратификации данные упорядочиваются таким образом, чтобы каждое подмножество было хорошим представлением всего набора данных.
В приведенном выше примере бинарной классификации это означало бы, что исходную выборку лучше разделить так, чтобы половина точек данных в сгибе относилась к классу A, а остальные — к классу B.
4. Перекрестная проверка без исключения
Перекрестная проверка с исключением p-out (LpOCV) - это исчерпывающий метод, в котором p точек данных вынимается из общего количества выборок данных, представленных n.
Модель обучается на точках данных np, а затем тестируется на точках данных p. Тот же процесс повторяется для всех возможных комбинаций p из исходной выборки. Наконец, результаты каждой итерации усредняются для достижения точности перекрестной проверки.
5. Перекрестная проверка с исключением одного
Подход перекрестной проверки с исключением одного (LOOCV) представляет собой упрощенную версию LpOCV. В этом методе перекрестной проверки значение p устанавливается равным единице. Следовательно, этот метод гораздо менее исчерпывающий. Однако выполнение этого метода является дорогостоящим и трудоемким, поскольку модель должна быть подобрана n раз.
Существуют и другие методы перекрестной проверки, в том числе повторная проверка случайной подвыборки, вложенная перекрестная проверка и перекрестная проверка временных рядов.
Приложения перекрестной проверки
Основное применение перекрестной проверки — оценка производительности моделей машинного обучения. Это помогает сравнить методы машинного обучения и определить, какой из них идеально подходит для решения конкретной задачи.
Например, предположим, что вы рассматриваете k ближайших соседей (KNN) или анализ основных компонентов (PCA) для выполнения оптического распознавания символов. В этом случае вы можете использовать перекрестную проверку, чтобы сравнить их на основе количества символов, неправильно классифицированных каждым методом.
Перекрестная проверка также может использоваться при выборе функций, чтобы выбрать функции, которые вносят наибольший вклад в вывод прогноза.
Ограничения перекрестной проверки
Основной проблемой перекрестной проверки является потребность в чрезмерных вычислительных ресурсах, особенно в таких методах, как k-fold CV. Поскольку алгоритм необходимо перезапускать с нуля k раз, для его оценки требуется в k раз больше вычислений.
Еще одно ограничение связано с невидимыми данными. При перекрестной проверке тестовый набор данных — это невидимый набор данных, используемый для оценки производительности модели. Теоретически это отличный способ проверить, как работает модель при использовании в реальных приложениях.
Но на практике никогда не может быть исчерпывающего набора невидимых данных, и никогда нельзя предсказать тип данных, с которыми модель может столкнуться в будущем.
Предположим, построена модель для прогнозирования риска заражения конкретного инфекционного заболевания. Если модель обучается на данных исследования, в котором участвует только определенная группа населения (например, женщины в возрасте от 20 до 20 лет), когда она применяется к общей популяции, прогностическая эффективность может резко отличаться от точности перекрестной проверки. .
Кроме того, перекрестная проверка даст значимые результаты только в том случае, если в исходном наборе выборок контролируются человеческие предубеждения.
Перекрестная проверка в помощь
Построение модели с перекрестной проверкой — отличный метод для создания приложений машинного обучения с большей точностью или производительностью. Методы перекрестной проверки, такие как перекрестная проверка в k-кратном порядке, позволяют оценить производительность модели без ущерба для разделения тестов.
Они также устраняют проблемы, возникающие при разделении данных дисбаланса; Короче говоря, они могут позволить специалистам по данным меньше полагаться на удачу и больше на итерации.
Существует подмножество машинного обучения, которое пытается имитировать работу человеческого мозга. Это называется глубоким обучением, и общий искусственный интеллект, если это вообще возможно, потребует его способности принимать решения.