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

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

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

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

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

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

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

  • Распределение комментариев Twitter по тональности — позитивные или негативные.
  • Диагностика пациента на наличие определенной болезни.
  • Принятие решений о присвоении отметки "спам" сообщению электронной почты.
  • Определение того, содержит ли фотография определенный элемент, например изображение собаки или фрукта.

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

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

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

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

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

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

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

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

Классификация по нескольким классам

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

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

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

Примечание.

В рамках стратегии one-vs.-rest обновляется любой алгоритм обучения двоичной классификации для работы с многоклассовыми наборами данных. Подробнее см. в Википедии.

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

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

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

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

Этот алгоритм обучения выводит приведенные ниже данные.

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

Регрессия

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

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

Алгоритмы обучения регрессии

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

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

Входные данные столбца меток должны иметь тип Single.

Алгоритмы обучения для этой задачи выводят приведенные ниже данные.

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

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

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

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

Алгоритм обучения кластеризации

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

Входные и выходные данные кластеризации

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

Этот алгоритм обучения выводит приведенные ниже данные.

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

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

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

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

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

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

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

Алгоритм обучения обнаружению аномалий

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

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

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

Этот алгоритм обучения выводит приведенные ниже данные.

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

Рейтинг

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

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

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

Входные и выходные данные ранжирования

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

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

Этот алгоритм обучения выводит приведенные ниже данные.

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

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

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

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

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

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

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

Алгоритмы обучения для прогнозирования

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

ForecastBySsa

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

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

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

Алгоритмы обучения классификации изображений

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

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

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

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

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

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

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

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

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