Запуск эксперимента автоматизированного Машинное обучение

Завершено

Чтобы запустить эксперимент автоматизированного машинного обучения (AutoML), можно настроить и отправить задание с помощью пакета SDK для Python.

Используемые алгоритмы AutoML будут зависеть от указанной задачи. Если вы хотите обучить модель классификации, AutoML будет выбирать из списка алгоритмов классификации:

  • Логистическая регрессия
  • Машины с градиентным усилением (GBM)
  • Дерево решений
  • Случайный лес
  • Упрощенный алгоритм Байеса
  • Линейный метод опорных векторов (SVM)
  • XGBoost
  • И другие...

Совет

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

Ограничение выбора алгоритмов

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

Настройка эксперимента AutoML

При использовании пакета SDK для Python версии 2 для настройки эксперимента или задания AutoML необходимо настроить эксперимент с помощью automl класса. Для классификации вы будете использовать функцию automl.classification , как показано в следующем примере:

from azure.ai.ml import automl

# configure the classification job
classification_job = automl.classification(
    compute="aml-cluster",
    experiment_name="auto-ml-class-dev",
    training_data=my_training_data_input,
    target_column_name="Diabetic",
    primary_metric="accuracy",
    n_cross_validations=5,
    enable_model_explainability=True
)

Примечание.

AutoML требует ресурса данных MLTable в качестве входных данных. В этом примере относится к ресурсу данных MLTable, my_training_data_input созданному в рабочей области Машинное обучение Azure.

Указание основной метрики

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

Чтобы получить список метрик, доступных при обучении модели классификации, можно использовать функцию ClassificationPrimaryMetrics , как показано ниже:

from azure.ai.ml.automl import ClassificationPrimaryMetrics
 
list(ClassificationPrimaryMetrics)

Совет

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

Установка ограничений

Обучение моделей машинного обучения будет стоить вычислений. Чтобы свести к минимуму затраты и время, потраченные на обучение, можно задать ограничения для эксперимента Или задания AutoML с помощью set_limits().

Существует несколько вариантов установки ограничений для эксперимента AutoML:

  • timeout_minutes: количество минут после завершения завершения эксперимента AutoML.
  • trial_timeout_minutes: максимальное количество минут, которые может занять одна пробная версия.
  • max_trials: максимальное количество проб или моделей, которые будут обучены.
  • enable_early_termination: следует ли завершить эксперимент, если оценка не улучшается в краткосрочной перспективе.
classification_job.set_limits(
    timeout_minutes=60, 
    trial_timeout_minutes=20, 
    max_trials=5,
    enable_early_termination=True,
)

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

Задание свойств обучения

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

Вы также можете выбрать, следует ли разрешить AutoML использовать модели ансамбля.

Отправка эксперимента автоматизированного машинного обучения

Задание AutoML можно отправить с помощью следующего кода:

# submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
) 

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

aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)