Перекрестная проверка модели

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

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

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

Принцип работы перекрестной проверки

  1. Перекрестная проверка случайным образом делит обучающие данные на свертки.

    Алгоритм по умолчанию имеет значение 10 сверток, если вы ранее не секционировали набор данных. Чтобы разделить набор данных на другое число сверток, можно использовать компонент Секционирование и выборка и указать, сколько сверток следует использовать.

  2. Компонент не обрабатывает данные из свертки 1, чтобы использовать их для проверки. (Иногда это называется контрольной сверткой.) Оставшиеся свертки компонент использует для обучения модели.

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

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

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

Преимущества перекрестной проверки

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

  • При перекрестной проверке используется больше тестовых данных.

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

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

  • При перекрестной проверке оцениваются как набор данных, так и модель.

    Перекрестная проверка не просто измеряет точность модели. Она также дает представление о том, насколько репрезентативен набор данных и насколько чувствительна может быть модель к отклонениям в данных.

Как использовать модуль "Перекрестная проверка модели"

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

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

  1. Добавьте компонент "Перекрестная проверка модели" в свой конвейер. Его можно найти в конструкторе Машинного обучения Azure, в категории Анализ и оценка модели.

  2. Подключите выходные данные любой модели классификации или регрессии.

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

    Совет

    Модель нет необходимости обучать, так как модуль "Перекрестная проверка модели" автоматически обучает ее в ходе оценки.

  3. К порту Набор данных модуля "Перекрестная проверка модели" подключите любой именованный набор обучающих данных.

  4. На правой панели модуля "Перекрестная проверка модели" нажмите Изменить столбец. Выберите один столбец, содержащий метку класса, или прогнозируемое значение.

  5. Задайте значение для параметра Случайное начальное значение, если нужно повторять результаты перекрестной проверки между последовательными выполнениями для одних и тех же данных.

  6. Отправьте конвейер.

  7. Описание отчетов см. в разделе Результаты.

Результаты

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

Результаты оценки

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

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

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

Результаты оценки

Второй отчет сгруппирован по сверткам. Помните, что во время выполнения модуль "Перекрестная проверка модели" случайным образом разделяет обучающие данные на n сверток (по умолчанию 10). В каждом проходе по набору данных модуль использует одну свертку в качестве набора данных для проверки. Оставшиеся n-1 сверток используются для обучения модели. Каждая из n моделей проверяется по данным из других сверток.

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

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

Имя столбца Description
Номер свертки Идентификатор для каждой свертки. Если было создано пять сверток, будет пять поднаборов данных с номерами от 0 до 4.
Количество примеров в свертке Количество строк, назначенных каждой свертке. Они должны быть примерно одинаковыми.

Компонент также включает в себя следующие метрики для каждой свертки в зависимости от типа модели, которая оценивается:

  • Модели классификации: точность, отзыв, F-оценка, AUC, правильность

  • Модели регрессии: средняя абсолютная погрешность, среднеквадратическая абсолютная погрешность, относительная абсолютная погрешность, относительная среднеквадратическая погрешность и коэффициент детерминации

Технические примечания

  • Рекомендуется нормализовать наборы данных перед их использованием для перекрестной проверки.

  • Модуль "Перекрестная проверка модели" гораздо более требователен к вычислительным ресурсам и его выполнение занимает больше времени, чем проверка модели с использованием набора данных с произвольным разделением. Причина в том, что "Перекрестная проверка модели" обучает и проверяет модель несколько раз.

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

Следующие шаги

Ознакомьтесь с набором доступных компонентов для машинного обучения Azure.