Настройка обучения AutoML с помощью Python
ОБЛАСТЬ ПРИМЕНЕНИЯ: Пакет SDK для Python версии 1
Из этого руководства вы узнаете, как настроить запуск автоматизированного машинного обучения AutoML с помощью пакета SDK для Машинного обучения Azure Python с помощью автоматизированного машинного обучения AML. Автоматизированное машинное обучение выбирает алгоритм и гиперпараметры, а также создает модель, готовую для развертывания. В этом разделе содержатся подробные сведения о различных параметрах, которые можно использовать для настройки экспериментов автоматизированного машинного обучения.
Полный пример см. в разделе Учебник. AutoML — модель регрессии.
Если вы предпочитаете работать без кода, можно также настроить обучение AutoML без кода в Студии машинного обучения Azure.
Необходимые компоненты
Для работы с этой статьей вам потребуется следующее:
Рабочая область Машинного обучения Azure. Сведения о создании рабочей области см. в разделе Создание ресурсов рабочей области.
Установленный пакет SDK Python для Машинного обучения Azure. Чтобы установить пакет SDK:
Создайте вычислительный экземпляр, который автоматически устанавливает пакет SDK и предварительно настроен для рабочих процессов Машинного обучения. Дополнительные сведения см. в статье Создание вычислительного экземпляра для Машинного обучения Azure и управление им.
Установите пакет
automl
самостоятельно, следуя инструкции по установке пакета SDK по умолчанию.
Внимание
Для выполнения команд Python из этой статьи требуется последняя версия пакета
azureml-train-automl
.- Установите последнюю версию пакета
azureml-train-automl
в локальной среде. - Сведения о последней версии пакета
azureml-train-automl
см. в заметках о выпуске.
Предупреждение
Python 3.8 несовместим с
automl
.
Выбор типа эксперимента
Прежде чем начать эксперимент, следует определить тип задачи машинного обучения, которую необходимо решить. Автоматическое машинное обучение поддерживает задачи типов classification
, regression
и forecasting
. Дополнительные сведения о типах задач.
Примечание.
Поддержка задач обработки естественного языка (NLP). Классификация изображений (с несколькими классами и несколькими метками) и распознавание именованных сущностей доступны в общедоступной предварительной версии. Дополнительные сведения об NLP см. в статье об автоматизированном машинном обучении.
Эти возможности предварительной версии предоставляются без соглашения об уровне обслуживания. Некоторые функции могут не поддерживаться или их функциональность может быть ограничена. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
В следующем коде параметр task
в конструкторе AutoMLConfig
использован для указания типа эксперимента classification
.
from azureml.train.automl import AutoMLConfig
# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")
Источник данных и формат
Автоматическое машинное обучение поддерживает данные, находящиеся на локальном компьютере или в облаке в хранилище BLOB-объектов Azure. Данные можно считать в кадр данных Pandas или табличный набор данных Машинного обучения Azure. Дополнительные сведения о наборах данных.
Требования к обучающим данным в машинном обучении:
- Данные должны иметь табличный формат.
- Прогнозируемое значение (целевой столбец) должно присутствовать в данных.
Внимание
Эксперименты автоматизированного ML не поддерживают обучение с наборами данных, которые используют доступ к данным на основе удостоверений.
Для удаленных экспериментов обучающие данные должны быть доступны из удаленной вычислительной среды. При работе с удаленным вычислением автоматизированное машинное обучение принимает только табличные наборы данных для Машинного обучения Azure.
Наборы данных Машинного обучения Azure предоставляют следующие функциональные возможности:
- простая передача данных из статических файлов или ресурсов с URL-адресами в рабочую область;
- предоставление доступа к данным обучающим скриптам в облачной вычислительной среде. В статье Обучение с использованием наборов данных приведен пример использования класса
Dataset
для подключения данных к удаленной целевой вычислительной среде.
Следующий код создает TabularDataset на основе URL-адреса. В статье Создание TabularDataset приведены примеры кода, демонстрирующие создание наборов данных из других источников, таких как локальные файлы и хранилища данных.
from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)
Для локальных вычислительных экспериментов рекомендуется использовать кадры данных pandas за счет их более быстрой обработки.
import pandas as pd
from sklearn.model_selection import train_test_split
df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"
Обучение, проверка и тестирование данных
Можно указать отдельно учебные данные и проверочные наборы данных непосредственно в конструкторе AutoMLConfig
. Дополнительные сведения о настройке обучения, проверки, перекрестной проверки, а также о тестовых данных для экспериментов AutoML.
Если параметр validation_data
или n_cross_validation
не задан явным образом, то автоматическое Машинное обучение применяет стандартные методы для определения способа проверки. Это определение зависит от количества строк в наборе данных, назначенном в параметре training_data
.
Объем данных обучения | Метод проверки |
---|---|
Более 20 000 строк | Применяется разбиение данных по обучению и проверке. Значение по умолчанию — использовать 10 % начального набора данных для обучения в качестве набора проверки. В свою очередь, этот набор проверки используется для вычисления метрик. |
Менее 20 000 строк | Применяется подход перекрестной проверки. Стандартное количество сверток зависит от числа строк. Если набор данных содержит менее 1000 строк, то используется 10 сверток. Если имеется от 1000 до 20 000 строк, то используются три свертки. |
Совет
Вы можете отправить тестовые данные (предварительная версия), чтобы проанализировать модели, созданные для вас посредством автоматизированного ML. Эти функции являются экспериментальными возможностями предварительной версии и могут быть изменены в любое время. Вы узнаете, как выполнять следующие задачи:
- Передайте проверочные данные в объект AutoMLConfig.
- Проверьте модели, созданные для вашего эксперимента посредством автоматизированного ML.
Если вы предпочитаете работать без кода, см. Шаг 12 статьи "Настройка AutoMLл с помощью пользовательского интерфейса студии"
Данные большого объема
Автоматизированное машинное обучение поддерживает ограниченное количество алгоритмов для обучения на больших данных, которые могут создавать модели для больших данных на небольших виртуальных машинах. Автоматизированная эвристика машинного обучения зависит от таких свойств, как размер данных, размер памяти виртуальной машины, время ожидания эксперимента и параметры конструирования признаков, чтобы определить, следует ли применять эти алгоритмы больших данных. Сведения о том, какие модели поддерживаются в автоматизированном машинном обучении см. в этом разделе.
Для регрессии используйте Регрессор вероятностного градиентного спуска и Быстрый линейный регрессор.
Для классификации: Классификатор усредненного восприятия и Линейный классификатор SVM; где линейный классификатор SVM имеет версии как с большими данными, так и с небольшими.
Если вы хотите переопределить эту эвристику, примените приведенные ниже настройки.
Задача | Параметр | Примечания. |
---|---|---|
Блокировать алгоритмы потоковой передачи данных | blocked_models в объекте AutoMLConfig и перечислите модели, которые вы не хотите использовать. |
Приводит либо к сбою выполнения, либо к длительному времени выполнения. |
Использовать алгоритмы потоковой передачи данных | allowed_models в объекте AutoMLConfig и перечислите модели, которые вы хотите использовать. |
|
Использование алгоритмов потоковой передачи данных (эксперименты с пользовательским интерфейсом Studio) |
Заблокируйте все модели, кроме алгоритмов больших данных, которые вы хотите использовать. |
Вычисление для запуска эксперимента
Затем следует определить, где модель будет обучаться. Эксперимент автоматического машинного обучения можно запустить в следующих вычислительных средах.
Выберите локальные вычислительные ресурсы: если ваш сценарий относится к первоначальным исследованиям или демонстрациям с использованием небольших данных и коротких поездов (т. е. секунд или нескольких минут на каждый дочерний запуск), обучение на локальном компьютере может оказаться лучшим вариантом. Нет необходимости в настройке, а ресурсы инфраструктуры (ваш компьютер или виртуальная машина) доступны напрямую. Пример для локальных вычислительных ресурсов см. в этой записной книжке.
Выберите удаленный вычислительный кластер машинного обучения. Если обучение ведется на больших наборах данных, например, при создании моделей для обучения в производственной среде, требующих более длительного обучения, то удаленное вычисление обеспечит более высокую производительность, т. к.
AutoML
будет параллельно вести обучение на узлах кластера. При использовании удаленного вычисления время запуска внутренней инфраструктуры составит около 1,5 минуты на каждый дочерний запуск, плюс дополнительные минуты для инфраструктуры кластера, если виртуальные машины еще не запущены.Вычислительная среда Машинного обучения — это управляемая служба, позволяющая обучать модели машинного обучения в кластерах виртуальных машин Azure. Вычислительный экземпляр также поддерживается в качестве целевого объекта вычислений.Кластер Azure Databricks в подписке Azure. Дополнительные сведения см. здесь: Настройка кластера Azure Databricks для автоматического Машинного обучения. На сайте GitHub доступны примеры записных книжек с Azure Databricks.
При выборе целевого объекта вычислений учитывайте следующие факторы.
Преимущества | Недостатки | |
---|---|---|
Локальный целевой объект вычислений | ||
Удаленные вычислительные кластеры ML |
Настройка параметров эксперимента
Доступно несколько параметров, с помощью которых можно настроить эксперименты автоматического машинного обучения. Эти параметры задаются путем создания экземпляра объекта AutoMLConfig
. Полный список параметров см. в статье AutoMLConfig class (Класс AutoMLConfig).
Следующий пример предназначен для задачи классификации. В эксперименте AUC используется в качестве основной метрики, а время ожидания эксперимента установлено равным 30 минутам и 2 сверткам перекрестной проверки.
automl_classifier=AutoMLConfig(task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
blocked_models=['XGBoostClassifier'],
training_data=train_data,
label_column_name=label,
n_cross_validations=2)
Можно также настроить задачи прогнозирования, требующие дополнительной настройки. Подробные сведения см. в статье Настройка AutoML для прогнозирования временных рядов.
time_series_settings = {
'time_column_name': time_column_name,
'time_series_id_column_names': time_series_id_column_names,
'forecast_horizon': n_test_periods
}
automl_config = AutoMLConfig(
task = 'forecasting',
debug_log='automl_oj_sales_errors.log',
primary_metric='normalized_root_mean_squared_error',
experiment_timeout_minutes=20,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
path=project_folder,
verbosity=logging.INFO,
**time_series_settings
)
Поддерживаемые модели
Автоматическое машинное обучение в процессе настройки проверяет различные модели и алгоритмы. Пользователю не нужно указывать алгоритм.
Тремя разными значениями параметра task
определяется перечень алгоритмов или моделей, которые будут использоваться. Используйте параметры allowed_models
или blocked_models
для дополнительного изменения итераций с помощью доступных моделей для включения или исключения.
В следующей таблице перечислены поддерживаемые модели по типам задач.
Примечание.
Если вы планируете экспортировать модели, созданные автоматизированным машинным обучением, в модель ONNX, преобразовать в формат ONNX можно только алгоритмы, обозначенные символом "*" (звездочка). Дополнительные сведения о преобразовании моделей в ONNX.
Также обратите внимание, что в настоящее время ONNX поддерживает только задачи классификации и регрессии.
Основная метрика
Параметр primary_metric
определяет используемые метрики во время обучения и оптимизации модели. Доступная для выбора метрика определяется выбранным вами типом задачи.
Выбор основной метрики для оптимизации автоматического машинного обучения зависит от многих факторов. Рекомендуется выбрать метрику, которая лучше соответствует потребностям вашего бизнеса. Затем рассмотрите, подходит ли метрика для профиля набора данных (размер данных, диапазон, распределение классов и т. д.). В следующих разделах приведены рекомендуемые основные метрики, исходя из типа задач и бизнес-сценария.
Сведения об определениях этих метрик см. в статье Общие сведения о результатах автоматизированного машинного обучения.
Метрики для сценариев классификации
Основанные на пороговых значениях метрики, такие как accuracy
, recall_score_weighted
, norm_macro_recall
и precision_score_weighted
, не всегда годятся для оптимизации наборов данных небольших размеров, имеющих большой разброс (дисбаланс) классов или когда ожидаемые значения метрики близки к 0,0 или 1,0. В таких случаях AUC_weighted
может быть лучшим выбором в качестве основной метрики. После завершения автоматического машинного обучения можно выбрать эффективную модель на основе метрики, наиболее подходящей для ваших бизнес-задач.
Метрика | Пример (-ы) использования |
---|---|
accuracy |
Классификация изображений, анализ тональности, прогнозирование оттока клиентов |
AUC_weighted |
Обнаружение мошенничества, классификация изображений, обнаружение аномалий или нежелательной почты |
average_precision_score_weighted |
Анализ тональности |
norm_macro_recall |
Прогнозирование оттока клиентов |
precision_score_weighted |
Метрики для сценариев регрессии
r2_score
, normalized_mean_absolute_error
и normalized_root_mean_squared_error
стараются свести к минимуму ошибки прогнозирования. r2_score
и normalized_root_mean_squared_error
сводят к минимуму среднеквадратические ошибки, в то время как normalized_mean_absolute_error
сводит к минимуму среднее абсолютное значение ошибок. Абсолютное значение обрабатывает ошибки любой величины одинаково, и для квадратичных ошибок штраф будет значительно больше при более высоких абсолютных значениях. В зависимости от того, должны ли большие ошибки понести больший штраф или нет, можно оптимизировать квадратичную ошибку или абсолютную ошибку.
Основное различие между r2_score
и normalized_root_mean_squared_error
заключается в способе нормализации и их значениях. normalized_root_mean_squared_error
представляет собой корень среднеквадратической погрешности, нормализованный по диапазону, и может быть интерпретирован как средняя величина ошибки для прогноза. r2_score
представляет собой среднее значение ошибки, нормализованное с помощью оценки вариантности данных. Это доля вариантности, которая может быть захвачена моделью.
Примечание.
r2_score
и normalized_root_mean_squared_error
также ведут себя как основные метрики. Если применяется фиксированный набор проверки, эти две метрики оптимизируют один и тот же целевой объект, среднеквадратическую погрешность и оптимизируются с помощью одной и той же модели. Если доступен только набор обучения и применяется перекрестная проверка, они будут немного отличаться, так как нормализатор для normalized_root_mean_squared_error
зафиксирован в диапазоне обучающего набора, но нормализатор для r2_score
будет отличаться для каждой свертки, представляя собой вариантность для каждой свертки.
Если интересует ранг, а не точное значение, spearman_correlation
может быть лучшим выбором, так как измеряет корреляцию между реальными значениями и прогнозами.
Однако в настоящее время никакие первичные метрики для регрессии не связаны с относительными различиями. Как r2_score
, так и normalized_mean_absolute_error
, и normalized_root_mean_squared_error
обрабатывают ошибку прогнозирования 20 тыс. долл. как для работника с заработной платой 30 тыс. долл., так и для работника, зарабатывающего 20 млн долл., если эти две точки данных относятся к одному и тому же набору данных для регрессии или к тому же временному ряду, заданному идентификатором временного ряда. В реальности же прогноз с погрешностью $20 000 для величин порядка $20 000 000 — это очень высокая точность (относительное отклонение всего 0,1 %), в то время как погрешность $20 000 от суммы $30 000 трудно назвать прогнозом (относительное отклонение 67 %). Для решения проблемы относительной разницы можно обучить модель с доступными основными метриками, а затем выбрать модель с лучшим mean_absolute_percentage_error
или root_mean_squared_log_error
.
Метрика | Пример (-ы) использования |
---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
Прогноз цен (на недвижимость или продукт), проверка прогнозируемой оценки |
r2_score |
Задержка авиарейса, оценка зарплаты, время разрешения ошибки |
normalized_mean_absolute_error |
Метрики для сценариев прогнозирования временных рядов
Рекомендации аналогичны рекомендациям для сценариев регрессии.
Метрика | Пример (-ы) использования |
---|---|
normalized_root_mean_squared_error |
Прогнозирование цен, оптимизация запасов, прогнозирование спроса |
r2_score |
Прогнозирование цен, оптимизация запасов, прогнозирование спроса |
normalized_mean_absolute_error |
Конструирование признаков
В каждом эксперименте по автоматизированному машинному обучению данные автоматически масштабируются или нормализуются, что способствует эффективному выполнению некоторых алгоритмов, чувствительных к разным масштабам признаков. Такое масштабирование и нормализация называются конструированием признаков. Дополнительные сведения и примеры кода см. в статье Конструирование признаков в автоматическом Машинном обучении.
Примечание.
Шаги конструирования признаков автоматизированного машинного обучения (нормализация признаков, обработка недостающих данных, преобразование текста в числовой формат и т. д.) становятся частью базовой модели. При использовании модели прогнозирования те же этапы конструирования признаков, которые выполнялись во время обучения, автоматически выполняются для входных данных.
При настройке экспериментов в объекте AutoMLConfig
можно включить или отключить параметр featurization
. В приведенной ниже таблице показаны допустимые параметры для конструирования признаков в объекте AutoMLConfig.
Конфигурация конструирования признаков | Description |
---|---|
"featurization": 'auto' |
Указывает, что в рамках предварительной обработки проверка данных и шаги конструирования признаков выполняются автоматически. Значение по умолчанию. |
"featurization": 'off' |
Указывает, что шаг конструирования признаков не должен выполняться автоматически. |
"featurization": 'FeaturizationConfig' |
Указывает, что следует использовать настраиваемый шаг конструирования признаков. Узнайте, как настроить конструирование признаков. |
Конфигурация ансамбля
Модели ансамблей включены по умолчанию и отображаются как окончательные итерации выполнения при запуске автоматического Машинного обучения. В настоящее время поддерживаются ансамбли VotingEnsemble и StackEnsemble.
Голосование реализует мягкое голосование, в котором используются средневзвешенные значения. Стогование — это реализация двухслойного ансамбля, где первый слой использует те же модели, что и ансамбль голосования, а модель второго слоя используется для определения оптимального сочетания моделей первого слоя.
В случае использования моделей ONNX или если применяется метод объяснимости моделей, стогование будет отключено и используется только голосование.
Обучение с использованием ансамблей можно отключить логическими параметрами enable_voting_ensemble
и enable_stack_ensemble
.
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=data_train,
label_column_name=label,
n_cross_validations=5,
enable_voting_ensemble=False,
enable_stack_ensemble=False
)
Для изменения стандартного поведения ансамбля предусмотрено несколько аргументов, которые можно передавать через kwargs
в объект AutoMLConfig
.
Внимание
Следующие параметры не являются явными параметрами класса AutoMLConfig.
ensemble_download_models_timeout_sec
: во время создания модели VotingEnsemble и StackEnsemble скачиваются несколько встроенных моделей из предыдущих дочерних запусков. Если возникает ошибкаAutoMLEnsembleException: Could not find any models for running ensembling
, может потребоваться дополнительное время для скачивания моделей. Значение по умолчанию составляет 300 секунд для параллельного скачивания этих моделей. Время ожидания не ограничено. Если требуется больше времени, настройте для этого параметра значение более 300 секунд.Примечание.
Если время ожидания истекло и имеются скачанные модели, то сборка продолжается с тем количеством моделей, которое было скачано. Не все модели должны быть обязательно скачаны до истечения времени ожидания. Перечисленные ниже параметры применимы только к моделям StackEnsemble.
stack_meta_learner_type
: мета-обучение — это модель, обученная на основе выходных данных отдельных разнородных моделей. Модели мета-обучения по умолчанию:LogisticRegression
для задач классификации (илиLogisticRegressionCV
, если включена перекрестная проверка) иElasticNet
для задач регрессии и прогнозирования (илиElasticNetCV
, если включена перекрестная проверка). Значением этого параметра может быть одна из следующих строк:LogisticRegression
,LogisticRegressionCV
,LightGBMClassifier
,ElasticNet
,ElasticNetCV
,LightGBMRegressor
илиLinearRegression
.stack_meta_learner_train_percentage
: определяет долю обучающего набора (при выборе типа обучения "обучение и проверка"), зарезервированного для обучения модели мета-обучения. Значение по умолчанию:0.2
.stack_meta_learner_kwargs
: необязательные параметры для передачи в инициализатор мета-обучения. Эти параметры и типы параметров отражают параметры и типы параметров из соответствующего конструктора модели и перенаправляются в конструктор модели.
В приведенном ниже коде показан пример настройки пользовательского поведения коллективных моделей в объекте AutoMLConfig
.
ensemble_settings = {
"ensemble_download_models_timeout_sec": 600
"stack_meta_learner_type": "LogisticRegressionCV",
"stack_meta_learner_train_percentage": 0.3,
"stack_meta_learner_kwargs": {
"refit": True,
"fit_intercept": False,
"class_weight": "balanced",
"multi_class": "auto",
"n_jobs": -1
}
}
automl_classifier = AutoMLConfig(
task='classification',
primary_metric='AUC_weighted',
experiment_timeout_minutes=30,
training_data=train_data,
label_column_name=label,
n_cross_validations=5,
**ensemble_settings
)
Условия выхода
Для завершения эксперимента в классе AutoMLConfig предусмотрено несколько параметров.
Критерии | описание |
---|---|
Нет условий | Если не определить параметры выхода, эксперимент будет продолжаться до тех пор, пока улучшение по основной метрике не прекратится. |
По истечении периода времени | Используйте параметр experiment_timeout_minutes , чтобы задать продолжительность, в течение которой ваш эксперимент будет выполняться. Чтобы избежать сбоев по времени выполнения экспериментов, предусмотрена минимальная продолжительность 15 минут или 60 минут для наборов данных размером свыше 10 млн (произведение строк и столбцов). |
Достигнуто значение оценки | При использовании experiment_exit_score эксперимент будет завершен по достижении определенного значения основной метрики. |
Выполнение эксперимента
Предупреждение
Если вы запускаете эксперимент с одними и теми же настройками конфигурации и основным показателем несколько раз, вы, вероятно, увидите различия в итоговой оценке каждого эксперимента и созданных моделей. Алгоритмы автоматизированного машинного обучения имеют присущую им случайность, которая может вызвать небольшие отклонения в моделях, выводимых в результате эксперимента, и в окончательной оценке рекомендованной модели, например в точности. Скорее всего, вы также увидите результаты с тем же именем модели, но с разными гиперпараметрами.
Для автоматизированного машинного обучения можно создать объект Experiment
, который будет именованным объектом в Workspace
для запуска экспериментов.
from azureml.core.experiment import Experiment
ws = Workspace.from_config()
# Choose a name for the experiment and specify the project folder.
experiment_name = 'Tutorial-automl'
project_folder = './sample_projects/automl-classification'
experiment = Experiment(ws, experiment_name)
Отправьте эксперимент для выполнения и создания модели. Передайте AutoMLConfig
в метод submit
, чтобы создать модель.
run = experiment.submit(automl_config, show_output=True)
Примечание.
Сначала зависимости устанавливаются на новую виртуальную машину. Это может занять до 10 минут, прежде чем отобразятся выходные данные.
Если для параметра show_output
задать значение True
, выходные данные отобразятся в консоли.
Множественные дочерние запуски в кластерах
В кластере, на котором уже выполняется другой эксперимент, можно выполнять дочерние запуски эксперимента автоматического Машинного обучения. Однако время выполнения зависит от количества узлов в кластере, а также от того, доступны ли эти узлы для выполнения другого эксперимента.
Каждый узел в кластере выступает в качестве отдельной виртуальной машины (ВМ), которая может завершить один обучающий запуск. Для автоматического выполнения Машинного обучения это будет дочерний запуск. Если все узлы заняты, новый эксперимент помещается в очередь. Но если имеются свободные узлы, новый эксперимент будет начинать дочерние запуски автоматического Машинного обучения параллельно в доступных узлах или ВМ.
Для упрощения управления дочерними запусками и времени их выполнения рекомендуется создать выделенный кластер для каждого эксперимента и сравнять количество max_concurrent_iterations
узлов в этом кластере по количеству экспериментов. Таким образом, одновременно используются все узлы кластера по количеству одновременно выполняемых дочерних запусков и итераций.
Настройте max_concurrent_iterations
в объекте AutoMLConfig
. Если параметр не настроен, то по умолчанию для каждого эксперимента разрешен только один одновременный дочерний запуск (итерация).
В случае с вычислительным экземпляром можно задать то же значение max_concurrent_iterations
, что и число ядер в виртуальной машине вычислительного экземпляра.
Изучение моделей и метрик
Автоматическое Машинное обучение позволяет отслеживать и оценивать результаты обучения.
Просмотреть результаты обучения можно в мини-приложении или во встроенном окне при работе с записной книжкой. Дополнительные сведения см. в разделе Мониторинг запусков автоматизированного машинного обучения.
Определения и примеры диаграмм производительности и метрик, предоставляемых для каждого запуска, см. в статье Оценка результатов экспериментов автоматического машинного обучения.
Краткие сведения о конструировании признаков и общее описание добавленных признаков для отдельных моделей см. в разделе Понимание конструирования признаков.
Используя код , print_model()
, можно настроить гиперпараметры, методы масштабирования и нормализации, алгоритм, применяемый для отдельных запусков автоматического Машинного обучения.
Совет
Автоматизированное ML также позволяет просматривать созданный код обучения модели для моделей, обученных посредством автоматизированного машинного обучения. Этот функционал доступен в общедоступной предварительной версии и может меняться в любое время.
Мониторинг автоматизированных запусков машинного обучения
Для запусков автоматизированного машинного обучения, чтобы получить доступ к диаграммам из предыдущего выполнения, замените <<experiment_name>>
на соответствующее имя эксперимента.
from azureml.widgets import RunDetails
from azureml.core.run import Run
experiment = Experiment (workspace, <<experiment_name>>)
run_id = 'autoML_my_runID' #replace with run_ID
run = Run(experiment, run_id)
RunDetails(run).show()
Тестовые модели (предварительная версия)
Внимание
Тестирование моделей с помощью тестового набора данных для оценки моделей, созданных посредством автоматизированного ML — это предварительная версия функции. Этот возможность является предварительной версией экспериментальной функции и может быть изменена в любое время.
Предупреждение
Эта функция недоступна для следующих сценариев автоматизированного машинного обучения:
- Задачи компьютерного зрения
- Многие модели и обучение прогнозированию иерархических временных рядов (предварительная версия)
- Задачи прогнозирования, в которых активировано использование глубоких нейронных сетей обучения (DNN)
- Запуск автоматизированного ML из локальных вычислений или кластеров Azure Databricks
Передача параметров test_data
или test_size
в AutoMLConfig
автоматически запускает удаленный тестовый запуск, использующий предоставленные проверочные данные для оценки лучшей модели, которую автоматизированное ML рекомендует при завершении эксперимента. Этот удаленный тестовый запуск выполняется в конце эксперимента, как только будет определена лучшая модель. См. статью Передача тестовых данных в AutoMLConfig
.
Получение результатов тестового задания
Прогнозы и метрики можно получить из удаленного тестового задания из Студии машинного обучения Azure или с помощью следующего кода.
best_run, fitted_model = remote_run.get_output()
test_run = next(best_run.get_children(type='automl.model_test'))
test_run.wait_for_completion(show_output=False, wait_post_processing=True)
# Get test metrics
test_run_metrics = test_run.get_metrics()
for name, value in test_run_metrics.items():
print(f"{name}: {value}")
# Get test predictions as a Dataset
test_run_details = test_run.get_details()
dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
predictions_df = test_run_predictions.to_pandas_dataframe()
# Alternatively, the test predictions can be retrieved via the run outputs.
test_run.download_file("predictions/predictions.csv")
predictions_df = pd.read_csv("predictions.csv")
Тестовое задание модели создает файл predictions.csv, который хранится в хранилище данных по умолчанию, созданном с помощью рабочей области. Это хранилище могут видеть все пользователи с одинаковой подпиской. Тестовые задания не рекомендуются для сценариев, если какая-либо информация, используемая для тестового задания или созданная им, должна оставаться закрытой.
Тестирование существующей модели автоматизированного ML
Чтобы протестировать другие существующие модели автоматизированного ML, созданные, выполненные в порядке оптимального задания или дочернего задания, используйте ModelProxy()
для тестирования модели после завершения основного запуска AutoML. ModelProxy()
уже возвращает прогнозы и метрики и не требует дальнейшей обработки для получения выходных данных.
Примечание.
ModelProxy является предварительной версией экспериментального класса и может измениться в любое время.
В следующем коде показано, как протестировать модель из любого запуска с помощью метода ModelProxy.test(). В методе test () можно указать, если нужно видеть только прогнозы тестового запуска с параметром include_predictions_only
.
from azureml.train.automl.model_proxy import ModelProxy
model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
)
Регистрация и развертывание моделей
После проверки модели и подтверждения ее использования в рабочей среде ее можно зарегистрировать для последующего использования и
Чтобы зарегистрировать модель во время запуска автоматического Машинного обучения, используйте метод register_model()
.
best_run = run.get_best_child()
print(fitted_model.steps)
model_name = best_run.properties['model_name']
description = 'AutoML forecast example'
tags = None
model = run.register_model(model_name = model_name,
description = description,
tags = tags)
Дополнительные сведения о создании конфигурации развертывания и развертывании зарегистрированной модели в веб-службе см. в статье Как и где развертывается модель.
Совет
Для зарегистрированных моделей развертывание одним щелчком доступно через Студию машинного обучения Azure. См. статью Развертывание зарегистрированных моделей из студии.
Интерпретируемость модели
Интерпретируемость модели позволяет понять, почему модели дали тот или иной прогноз, а также важность базовых признаков. Пакет SDK содержит различные пакеты для включения функций интерпретации модели как во время обучения, так и во время вывода для локальных и развернутых моделей.
См. порядок включениея функций интерпретации, в частности в экспериментах автоматизированного машинного обучения.
Общие сведения о том, как можно включить пояснения к моделям и важность признаков в других компонентах пакета SDK, не относящихся к автоматизированному машинному обучению, см. в концептуальной статье об интерпретируемости.
Примечание.
Модель ForecastTCN в настоящее время не поддерживается в Explanation Client. Эта модель не будет возвращать панель мониторинга с объяснением, если она возвращается в качестве лучшей модели и не поддерживает запуски объяснения по требованию.
Следующие шаги
Узнайте больше о том, как и где можно развернуть модель.
Узнайте больше о том, как обучить модель регрессии с помощью автоматизированного машинного обучения.