• Регистрация
Lesan
Lesan +5.00
н/д

Оценка и улучшение прогностических характеристик моделей

19.08.2021

Перекрестная проверка (кросс-валидация) – это метод оценки модели машинного обучения, используемый для анализа эффективности алгоритма машинного обучения при составлении прогнозов на новых наборах данных, на которых он не обучался. Метод кросс-валидации заключается в разбиении известного набора данных для использования одной части для обучения алгоритма, а другой – для тестирования.

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

 

Почему важна перекрестная проверка?

 

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

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

 

Основные методы перекрестной проверки

 

  • k-кратная кросс-валидация (k-fold) разбивает данные на k случайно выбранных подмножеств (или наборов) примерно одинакового размера. Одно подмножество используется для тестирования модели, обученной на остальных наборах данных. Этот процесс повторяется k раз, так что каждое подмножество используется для проверки ровно один раз. Средняя ошибка по всем k подмножествам представляется как ε. Это один из самых популярных методов перекрестной проверки, но его выполнение может занять много времени, поскольку модель нужно обучать многократно. На рисунке ниже показан этот процесс. Отличительной чертой этого метода кросс-валидации является то, что каждое подмножество данных будет протестировано.

         

  • Метод удержания (Holdout) разбивает данные случайным образом на два подмножества с заданным соотношением для обучения и тестирования (тестовый набор «удерживается» от обучения). Этот метод выполняет обучение и тестирование только один раз, что сокращает время выполнения на больших наборах данных, однако на малых наборах данных следует с осторожностью интерпретировать полученную ошибку.
  • Кросс-валидация по отдельным объектам (Leaveout) оставляет N данных за пределами обучающей выборки, остальные данные используются для обучения. N может равняться 1 и более. Процесс повторяется для всех комбинаций данных, все данные будут использованы один раз в качестве тестовых, в итоге ошибка усредняется для всех испытаний. Метод также известен как кросс-валидация с выбыванием (LOOCV).
  • Повторяющаяся случайная подвыборка (Repeated random sub-sampling) создает несколько случайных разделов данных для использования в качестве обучающего и тестового множества методикой Монте-Карло и агрегирует результаты по всем прогонам. Эта техника имеет схожую идею с k-fold, но каждый тестовый набор выбирается независимо, что означает, что некоторые выборки данных могут быть использованы для тестирования более одного раза.
  • Стратифицированная выборка (Stratify) разбивает данные таким образом, чтобы обучающий и тестовый наборы имели примерно одинаковые пропорции данных заданных классов.
  • Проверка повторной подстановкой (resubstitution): все данные используются для обучения модели, а не разбиваются на части. Ошибка оценивается путем сравнения результатов с фактическими значениями. Этот подход часто дает слишком оптимистичные оценки эффективности, поэтому его следует избегать при наличии достаточного количества данных.

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

 

Кросс-валидация в MATLAB

 

В MATLAB реализовать машинное обучение с методом перекрестной проверки можно в приложении Classification Learner и Regression Learner.

                 

Приложение Classification Learner для обучения, проверки и настройки моделей классификации. В истории (список слева) отображены различные типы классификаторов.


                 

Приложение для обучения, проверки и настройки регрессионных моделей. В истории (список слева) отображены различные типы регрессионных моделей.

 

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

Для получения дополнительной информации об использовании перекрестной валидации в задачах машинного обучения в MATLAB, изучите Statistics and Machine Learning Toolbox и Deep Learning Toolbox.

 

Ссылки на функции MATLAB:

crossval – оценка потерь с помощью перекрестной валидации

cvpartition – создание наборов данных для перекрестной валидации

 

Полезные статьи

Полезные примеры с кросс-валидацией:

Видео:

Источники

  1. MathWorks

Комментарии