Поделиться через


Задачи машинного обучения в ML.NET

Задача машинного обучения — это тип прогнозирования или вывода, основанный на обоих:

  • Проблема или вопрос
  • Доступные данные

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

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

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

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

Задачи классификации

Двоичная классификация

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

Дополнительные сведения см. в статье о двоичной классификации в Википедии.

Обучающие средства двоичной классификации

Вы можете обучить модель двоичной классификации с помощью следующих алгоритмов:

Входные и выходные данные двоичной классификации

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

Данные столбца входной метки должны быть Boolean. Входные данные столбцов функций должны быть вектором фиксированного Singleразмера.

Эти тренеры выводят следующие столбцы:

Имя выходного столбца Тип столбца Описание
Score Single Необработанная оценка, вычисляемая моделью.
PredictedLabel Boolean Прогнозируемая метка, определяемая по знаку оценки. Отрицательный показатель сопоставляется с false, а положительный показатель сопоставляется с true.

Многоклассовая классификация

Многоклассовая классификация — это защищенная задача машинного обучения , которая используется для классификации экземпляра данных в один из трех или нескольких классов (категорий). Входные данные алгоритма классификации — это набор помеченных примеров. Каждая метка обычно начинается как текст. Затем он прогоняется через TermTransform, который преобразует его в тип Ключевой (числовой). Выходные данные алгоритма классификации — это классификатор, который можно использовать для прогнозирования класса новых неназначенных экземпляров. Примеры сценариев классификации с несколькими классами:

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

Дополнительные сведения см. в статье о многоклассовой классификации на Википедии.

Замечание

One-vs.-rest обновляет любой алгоритм бинарной классификации, чтобы работать с многоклассовыми наборами данных.

Обучатели многоклассовой классификации

Модель многоклассовой классификации можно обучить с помощью следующих алгоритмов обучения:

Входные и выходные данные многоклассовой классификации

Данные столбца входной метки должны быть типа ключ. Столбец признаков должен быть вектором фиксированного Singleразмера.

Этот тренер выводит следующее:

Имя вывода Тип Описание
Score Вектор Single Оценки всех классов. Более высокое значение означает более высокую вероятность падения в связанный класс. Если элемент i-th имеет наибольшее значение, прогнозируемый индекс метки будет i. Обратите внимание, что i индекс на основе нуля.
PredictedLabel ключ Индекс прогнозируемой метки. Если его значение равно i, фактическое обозначение будет i-й категорией в типе метки входных данных с ключевым значением.

Классификация текста

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

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

  • Двунаправленное представление кодировщика из преобразователей (BERT)
  • Надежный оптимизированный подход для предварительной подготовки BERT (RoBERTa)
  • Генеративный предварительно обученный трансформер (GPT)

API классификации текста ML.NET работает на платформе TorchSharp. TorchSharp — это библиотека .NET, которая предоставляет доступ к библиотеке, которая управляет PyTorch. TorchSharp содержит стандартные блоки для обучения нейронных сетей с нуля в .NET. ML.NET абстрагирует некоторые сложности TorchSharp на уровне сценария. Она использует предварительно обученную версию модели NAS-BERT и далее настраивает её с вашими данными.

Пример классификации текста см. в статье "Начало работы с API классификации текста".

Классификация изображений

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

  • Определение породы собаки как "Сибирский хаски", "Золотистый ретривер", "пудель" и т. д.
  • Определение того, является ли производственный продукт дефектным или нет.
  • Определение типов цветов, таких как «Роза», «Подсолнечник» и т. д.

Тренеры по классификации изображений

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

Входные и выходные данные классификации изображений

Данные столбца входной метки должны быть типа ключ. Столбец признаков должен быть вектором размера переменной Byte.

Этот тренер выводит следующие столбцы:

Имя вывода Тип Описание
Score Single Оценки всех классов. Более высокое значение означает более высокую вероятность падения в связанный класс. Если элемент i-th имеет наибольшее значение, прогнозируемый индекс метки будет i. (i является отсчитываемый от нуля индекс.)
PredictedLabel Тип ключа Индекс прогнозируемой метки. Если его значение равно i, фактическое обозначение будет i-й категорией в типе метки входных данных с ключевым значением.

Регрессия

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

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

Тренеры регрессии

Модель регрессии можно обучить с помощью следующих алгоритмов:

Регрессия входных и выходных данных

Данные столбца входной метки должны быть Single.

Тренеры для этой задачи создают следующий результат:

Имя вывода Тип Описание
Score Single Необработанная оценка, прогнозируемая моделью

Кластеризация

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

  • Понимание сегментов гостей отеля на основе привычек и характеристик выбора отеля.
  • Определение сегментов клиентов и демографических показателей для создания целевых рекламных кампаний.
  • Классификация запасов на основе производственных метрик.

Обучение кластеризации

Модель кластеризации можно обучить с помощью следующего алгоритма:

Кластеризация входных и выходных данных

Входные данные функций должны быть Single. Метки не требуются.

Этот тренер выводит следующее:

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

Обнаружение аномалий

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

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

Обнаружение аномалий включает в себя множество важных задач в машинном обучении:

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

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

Тренер обнаружения аномалий

Вы можете обучить модель обнаружения аномалий с помощью следующего алгоритма:

Входные и выходные данные обнаружения аномалий

Входные функции должны быть вектором фиксированного Singleразмера.

Этот тренер выводит следующее:

Имя вывода Тип Описание
Score Single Неотрицательная, несвязанная оценка, вычисляемая моделью обнаружения аномалий.
PredictedLabel Boolean true если входные данные являются аномалией или false если это не так.

Ранжирование

Задача ранжирования создает рангер из набора помеченных примеров. Этот набор примеров состоит из групп экземпляров, которые можно оценить по заданным критериям. Метки ранжирования : { 0, 1, 2, 3, 4 } для каждого экземпляра. Рангер обучен ранжировать новые группы экземпляров с неизвестными оценками для каждого экземпляра. ML.NET алгоритмы ранжирования основаны на ранжировании на основе машинного обучения.

Ранжирование алгоритмов обучения

Вы можете обучить модель ранжирования с помощью следующих алгоритмов:

Ранжирование входных и выходных данных

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

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

Этот тренер выводит следующее:

Имя вывода Тип Описание
Score Single Несвязанная оценка, вычисляемая моделью для определения прогноза.

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

Задача рекомендаций позволяет создавать список рекомендуемых продуктов или служб. ML.NET использует матрицу факторизации (MF) — алгоритм совместной фильтрации рекомендаций при наличии исторических данных о рейтинге продуктов в каталоге. Например, у вас есть исторические данные о рейтинге фильмов для пользователей и хотите рекомендовать другие фильмы, которые они, скорее всего, будут смотреть дальше.

Алгоритмы обучения рекомендаций

Вы можете обучить модель рекомендаций с помощью следующего алгоритма:

Прогнозирование

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

Тренеры прогнозирования

Вы можете обучить модель прогнозирования с помощью следующего алгоритма:

ForecastBySsa

Обнаружение объектов

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

  • Обнаружение автомобилей, знаков или людей на изображениях дороги.
  • Обнаружение дефектов на изображениях продуктов.
  • Обнаружение областей озабоченности на рентгеновских изображениях.

Обучение модели обнаружения объектов в настоящее время доступно только в Конструкторе моделей с помощью Машинного обучения Azure.