Выбор алгоритмов машинного обучения Azure

Распространенный вопрос: "Какой алгоритм машинного обучения следует использовать?" Выбранный алгоритм зависит, в основном, от двух различных аспектов сценария обработки и анализа данных:

  • Что вы хотите сделать с данными? В частности, каков бизнес-вопрос, на который вы хотите ответить при обучении по прошлым данным?

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

Considerations for choosing algorithms: What do you want to know? What are the scenario requirements?

Примечание.

Конструктор поддерживает два типа компонентов, классические предварительно созданные компоненты (версии 1) и пользовательские компоненты (версия 2). Эти два типа компонентов несовместимы.

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

Пользовательские компоненты позволяют упаковывать собственный код в качестве компонента. Она поддерживает совместное использование компонентов между рабочими областями и простой разработки в интерфейсах Studio, CLI версии 2 и ПАКЕТА SDK версии 2.

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

Эта статья относится к классическим предварительно созданным компонентам и не совместим с CLI версии 2 и пакетом SDK версии 2.

Бизнес-сценарии и краткий справочник по Машинному обучению

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

Конструктор Машинного обучения предоставляет комплексный портфель алгоритмов, таких как лес решений с несколькими классами, системы рекомендаций, регрессия нейронных сетей, многоклассовая нейронная сеть и кластеризация методом k-средних. Каждый алгоритм предназначен для решения определенного типа проблем, связанных с машинным обучением. Полный список, а также описание работы каждого алгоритма и настройки параметров для оптимизации алгоритма см. в Справочнике по модулям и алгоритмам для конструктора Машинного обучения Azure.

Примечание.

Скачать памятку можно здесь: Памятка по алгоритмам Машинного обучения Microsoft Azure (27,94 x 43,18 см)

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

Сравнение алгоритмов машинного обучения

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

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

Алгоритм Точность Время обучения Линейность Параметры Примечания
Семейство классификации
Двухклассовая логистическая регрессия Специалист Быстро Да 4
Двухклассовый лес принятия решений Отлично Умеренно No 5 Показывает меньшее время оценки. Предложение не работает с Многоклассовым классификатором "один — все" из-за более медленных оценок, вызванных блокировкой в накоплении прогнозов дерева
Двухклассовое увеличивающееся дерево принятия решений Отлично Умеренно No 6 Большой объем памяти
Двухклассовая нейронная сеть Специалист Умеренно No 8
Двухклассовое усредненное восприятие Специалист Умеренно Да 4
Двухклассовый метод опорных векторов Специалист Быстро Да 5 Подходит для больших наборов функций
Многоклассовая логистическая регрессия Специалист Быстро Да 4
Многоклассовый лес принятия решений Отлично Умеренно No 5 Показывает меньшее время оценки
Мультиклассовое увеличивающееся дерево принятия решений Отлично Умеренно No 6 Имеет тенденцию к повышению точности с небольшим риском меньшего объема
Многоклассовая нейронная сеть Специалист Умеренно No 8
Многоклассовый классификатор "один — все" - - - - Просмотрите свойства выбранного двухклассового метода
Семейство регрессии
Линейная регрессия Специалист Быстро Да 4
Регрессия леса принятия решений Отлично Умеренно No 5
Регрессия увеличивающегося дерева принятия решений Отлично Умеренно No 6 Большой объем памяти
Регрессия нейронной сети Специалист Умеренно No 8
Семейство кластеризации
Кластеризация методом k-средних Отлично Умеренно Да 8 Алгоритм кластеризации

Требования к сценарию обработки и анализа данных

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

Сделайте выбор и, возможно, найдите приемлемое решение для удовлетворения следующих требований.

  • Правильность
  • Время обучения
  • Линейность
  • Количество параметров
  • Количество функций

Правильность

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

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

Существует три способа использования компонента "Оценка модели":

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

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

Время обучения

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

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

В конструкторе Машинного обучения создание и использование модели машинного обучения, как правило, состоит из трех этапов:

  1. Необходимо настроить модель, выбрав определенный тип алгоритма и определив ее параметры или гиперпараметры.

  2. Предоставьте помеченный набор данных, который содержит данные, совместимые с алгоритмом. Подключите данные и модель к компоненту "Обучение модели".

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

Линейность

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

Линейность используется во многих алгоритмах машинного обучения. В конструкторе "Машинное обучение" Azure они включают:

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

Nonlinear class boundary

Граница нелинейного класса — использование алгоритма линейной классификации приведет к снижению точности.

Data with a nonlinear trend

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

Количество параметров

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

Кроме того, конструктор Машинного обучения содержит компонент "Настройка гиперпараметров модели". Цель этого компонента — определить оптимальные гиперпараметры для модели машинного обучения. Модуль создает и тестирует несколько компонентов, используя различные сочетания параметров. Он сравнивает метрики по всем моделям, чтобы получить сочетания параметров.

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

Количество функций

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

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

Как правило, выбор признаков обозначает процесс применения статистических тестов к входным данным с учетом конкретных выходных данных. Цель состоит в том, чтобы определить столбцы, которые лучше других позволяют прогнозировать эти выходные данные. Компонент "Выбор признаков с помощью фильтра" в конструкторе Машинного обучения предоставляет несколько алгоритмов выбора признаков. Данный компонент включает такие методы корреляции, как корреляция Пирсона и значения хи-квадрат.

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

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