Обучение и оценка моделей в Model Builder

Завершено

В этом уроке вы узнаете, как обучать и оценивать модели машинного обучения в Model Builder.

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

Обучение в Model Builder

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

В большинстве случаев для обучения моделей машинного обучения в Model Builder необходимо указать только время, которое должно занимать обучение.

Требуемая длительность обучения

Чем дольше будет выполняться обучение, тем больше моделей с широким рядом параметров сможет испытать Model Builder.

В таблице ниже приведено среднее время для достижения высокой эффективности для примера наборов данных на локальном компьютере с помощью ЦП:

Размер набора данных Среднее время обучения
от 0 до 10 МБ; 10 seconds
от 10 до 100 МБ; 10 минут
от 100 до 500 МБ; 30 минут
от 500 МБ до 1 ГБ. 60 минут
Более 1 ГБ Более 3 часов

Это ориентировочные числа. Фактическая продолжительность обучения зависит от следующих факторов:

  • Число признаков (столбцов), используемых в качестве входных данных для модели.
  • Тип столбцов.
  • Задача машинного обучения.
  • Производительность ЦП, GPU, диска и памяти компьютера, используемого для обучения.

Совет

Используйте более 100 строк в качестве наборов данных. Если их будет меньше, вы можете не получить никаких результатов.

Как Model Builder находит оптимальную модель?

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

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

Код обучения и использования

После завершения обучения модели Model Builder создаст следующие файлы и добавит их в проект. Эти файлы находятся под MBCONFIG-файлом.

  • <MODEL-NAME>.zip. Артефакт для модели машинного обучения. Этот файл содержит сериализованную версию модели.
  • <MODEL-NAME>.training.cs. Этот файл содержит конвейер обучения модели. Конвейер обучения модели состоит из преобразований данных и алгоритмов, используемых для обучения модели машинного обучения. Дополнительные сведения см. в статьях о преобразованиях данных и выборе алгоритма ML.NET.
  • <MODEL-NAME>.consumption.cs. Этот файл содержит классы, которые определяют схему входных и выходных данных модели. Он также содержит метод Predict, который использует модель для создания API PredictionEngine и прогнозов. PredictionEngine — это удобный API, позволяющий выполнять прогнозирование на одном экземпляре данных.

Оценка модели

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

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

В этой таблице показаны метрики оценки, используемые Model Builder для выбора лучшей модели на основе сценария:

Сценарий Метрики оценки Вы ищете
Классификация данных Двоичная (точность)/по нескольким классам (микроточность) Чем ближе к 1.00, тем лучше
Прогнозирование значения Достоверность аппроксимации Чем ближе к 1.00, тем лучше
Классификация изображений Правильность Чем ближе к 1.00, тем лучше
Рекомендация Достоверность аппроксимации Чем ближе к 1.00, тем лучше
Обнаружение объектов Правильность Чем ближе к 1.00, тем лучше

Дополнительные сведения о метриках оценки ML.NET см. в статье Метрики оценки модели.

Выбор модели с самыми высокими метриками

Ваша модель достигла идеальных метрик оценки. Означает ли это, что у вас есть идеальная модель? Не совсем. На самом деле, если метрики оценки указывают на "идеальную" модель, у вас должны возникнуть сомнения.

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

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

Улучшение модели

Если вы не удовлетворены метриками оценки модели, есть несколько способов улучшить модель:

  • Предоставьте более репрезентативные наблюдения за данными — нет лучшего учителя, чем опыт. Этот принцип работает и в машинном обучении. Чем больше наблюдений за данными вы можете предоставить, тем шире набор закономерностей, которые может распознать модель.
  • Предоставьте больше контекста — добавьте столбцы с дополнительным контекстом, чтобы помочь модели в определении закономерностей. Например, вы пытаетесь спрогнозировать цену дома, а единственная точка данных — число комнат. Сами по себе эти сведения мало о чем говорят. Было бы лучше, если бы вы знали, что дом находится в пригороде рядом с крупным городом, средний доход семьи составляет $80 000, а школы входят в верхний 20-й процентиль. Теперь у вас есть больше сведений, чтобы принять решение.
  • Используйте значимые данные и признаки — хотя дополнительные данные и признаки могут повысить точность модели, они могут быть лишними, поскольку не все данные и признаки являются значимыми. Важно понимать, какие признаки больше всего влияют на решения алгоритма.
  • Изучите больше алгоритмов — если Model Builder может использовать больше алгоритмов и гиперпараметров, это позволит улучшить модель.

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