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


Справочник по API Python Для AutoML в Azure Databricks

В этой статье описывается API Python AutoML Для Azure Databricks, который предоставляет методы для запуска классификации, регрессии и прогнозирования запусков AutoML. Каждый вызов метода обучает набор моделей и создает пробную записную книжку для каждой модели.

Дополнительные сведения об AutoML, включая параметр пользовательского интерфейса с низким кодом, см. в разделе "Что такое AutoML?".

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

Метод databricks.automl.classify настраивает запуск AutoML для обучения модели классификации.

Примечание.

Параметр max_trials не рекомендуется использовать в Databricks Runtime 10.4 ML и не поддерживается в Databricks Runtime 11.0 ML и выше. Используйте timeout_minutes для управления продолжительностью выполнения AutoML.

databricks.automl.classify(
  dataset: Union[pyspark.sql.DataFrame, pandas.DataFrame, pyspark.pandas.DataFrame, str],
  *,
  target_col: str,
  data_dir: Optional[str] = None,
  exclude_cols: Optional[List[str]] = None,                      # <DBR> 10.3 ML and above
  exclude_frameworks: Optional[List[str]] = None,                   # <DBR> 10.3 ML and above
  experiment_dir: Optional[str] = None,                             # <DBR> 10.4 LTS ML and above
  experiment_name: Optional[str] = None,                            # <DBR> 12.1 ML and above
  feature_store_lookups: Optional[List[Dict]] = None,               # <DBR> 11.3 LTS ML and above
  imputers: Optional[Dict[str, Union[str, Dict[str, Any]]]] = None, # <DBR> 10.4 LTS ML and above
  max_trials: Optional[int] = None,                                 # <DBR> 10.5 ML and below
  pos_label: Optional[Union[int, bool, str] = None,                 # <DBR> 11.1 ML and above
  primary_metric: str = "f1",
  time_col: Optional[str] = None,
  timeout_minutes: Optional[int] = None,
  split_col: Optional[str] = None,                                  # <DBR> 15.3 ML and above
  sample_weight_col: Optional[str] = None                           # <DBR> 15.4 ML and above
) -> AutoMLSummary

Классифицировать параметры

Наименование параметра Тип Описание
dataset str, , pandas.DataFramepyspark.DataFramepyspark.sql.DataFrame Имя входной таблицы или кадр данных, содержащий функции обучения и целевой объект. Имя таблицы может быть в формате "<database_name>".<>table_name или "<schema_name>".<>table_name" для таблиц, отличных от каталога Unity.
target_col str Имя столбца для целевой метки.
data_dir str формат dbfs:/<folder-name> Необязательно. Путь DBFS , используемый для хранения обучаемого набора данных. Этот путь виден как для драйверов, так и для рабочих узлов.

Databricks рекомендует оставить это поле пустым, поэтому AutoML может сохранить набор данных обучения в качестве артефакта MLflow.

Если указан пользовательский путь, набор данных не наследует разрешения на доступ к эксперименту AutoML.
exclude_cols List[str] Необязательно. Список столбцов, которые следует игнорировать во время вычислений AutoML.

Default: []
exclude_frameworks List[str] Необязательно. Список платформ алгоритмов, которые autoML не должны рассматриваться в качестве разработки моделей. Возможные значения: пустой список или одно или несколько из следующих — "sklearn", "lightgbm", "xgboost".

По умолчанию: [] (все платформы учитываются)
experiment_dir str Необязательно. Путь к каталогу в рабочей области для сохранения созданных записных книжек и экспериментов.

По умолчанию: /Users/<username>/databricks_automl/
experiment_name str Необязательно. Имя создаваемого эксперимента MLflow.

По умолчанию: имя создается автоматически.
feature_store_lookups List[Dict] Необязательно. Список словарей, представляющих функции из Хранилища компонентов для расширения данных. Допустимые ключи в каждом словаре:

* table_name (str): Обязательный. Имя таблицы признаков.
* lookup_key (список или стр.): Обязательный. Имена столбцов, которые используются в качестве ключа при присоединении к таблице компонентов с данными, переданными в dataset параме. Порядок имен столбцов должен соответствовать порядку первичных ключей таблицы признаков.
* timestamp_lookup_key(str): Требуется, если указанная таблица является таблицей функций временных рядов. Имя столбца, используемое при поиске на определенный момент времени в таблице признаков с данными, переданными в dataset параме.

Default: []
imputers Dict[str, Union[str, Dict[str, Any]]] Необязательно. Словарь, где каждый ключ является именем столбца, и каждое значение является строкой или словарем, описывающим стратегию вменения. Если значение указано в виде строки, оно должно иметь одно из значений: "mean", "median" или "most_frequent". Чтобы ввести в качестве словаря {"strategy": "constant", "fill_value": <desired value>}имя известного значения, укажите значение. Можно также указать параметры строки в качестве словарей, например {"strategy": "mean"}.

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

По умолчанию: {}
max_trials int Необязательно. Максимальное количество выполняемых пробных версий. Этот параметр доступен до версии Databricks Runtime 10.5 ML, но является устаревшим, начиная с Databricks Runtime 10.3 ML. Начиная с Databricks Runtime 11.0 ML, этот параметр не поддерживается.

По умолчанию: 20

Если timeout_minutes=None, AutoML выполняет максимальное число пробных запусков.
pos_label Union[int, bool, str] (Только классификация) Положительный класс. Он удобен для вычисления таких метрик, как точность и полнота. Он должен указываться только для задач двоичной классификации.
primary_metric str Метрика, используемая для оценки и ранжирования производительности модели.

Поддерживаемые метрики для регрессии: "r2" (по умолчанию), "mae", "rmse", "mse"

Поддерживаемые метрики для классификации: "f1" (по умолчанию), "log_loss", "precision", "accuracy", "roc_auc"
split_col str Необязательно. Имя столбца для разделенного столбца. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по пользовательским значениям, и этот столбец автоматически исключается из функций обучения.

Допустимый тип столбца — строка. Значение каждой записи в этом столбце должно быть одним из следующих значений: "train", "validate" или "test".
time_col str Доступно в Databricks Runtime 10.1 ML и более поздних версий.

Необязательно. Имя столбца для столбца времени.

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

Допустимые типы столбцов — метка времени и целое число. В Databricks Runtime 10.2 ML и более поздних версий также поддерживаются строковые столбцы.

Если тип столбца — строковый, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем.
timeout_minutes int Необязательно. Максимальное время ожидания завершения пробной версии AutoML. Более длительные тайм-ауты позволяют AutoML выполнять больше запусков и идентифицировать модель с большей точностью.

Значение по умолчанию: 120 минут

Минимальное значение: 5 минут

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.
sample_weight_col str Доступно в Databricks Runtime 15.4 ML и более поздних версиях для рабочих процессов API классификации.

Необязательно. Имя столбца в наборе данных, содержащего примеры весов для каждой строки. Классификация поддерживает весы выборки для каждого класса. Эти весы корректируют важность каждого класса во время обучения модели. Каждый образец в классе должен иметь одинаковый вес выборки и весы должны быть неотрицательных десятичных или целых значений, начиная от 0 до 10 000. Классы с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот столбец не указан, предполагается, что все классы имеют равный вес.

Регресс

Метод databricks.automl.regress настраивает запуск AutoML для обучения модели регрессии. Этот метод возвращает autoMLSummary.

Примечание.

Параметр max_trials не рекомендуется использовать в Databricks Runtime 10.4 ML и не поддерживается в Databricks Runtime 11.0 ML и выше. Используйте timeout_minutes для управления продолжительностью выполнения AutoML.

databricks.automl.regress(
  dataset: Union[pyspark.sql.DataFrame, pandas.DataFrame, pyspark.pandas.DataFrame, str],
  *,
  target_col: str,
  data_dir: Optional[str] = None,
  exclude_cols: Optional[List[str]] = None,                      # <DBR> 10.3 ML and above
  exclude_frameworks: Optional[List[str]] = None,                   # <DBR> 10.3 ML and above
  experiment_dir: Optional[str] = None,                             # <DBR> 10.4 LTS ML and above
  experiment_name: Optional[str] = None,                            # <DBR> 12.1 ML and above
  feature_store_lookups: Optional[List[Dict]] = None,               # <DBR> 11.3 LTS ML and above
  imputers: Optional[Dict[str, Union[str, Dict[str, Any]]]] = None, # <DBR> 10.4 LTS ML and above
  max_trials: Optional[int] = None,                                 # <DBR> 10.5 ML and below
  primary_metric: str = "r2",
  time_col: Optional[str] = None,
  timeout_minutes: Optional[int] = None,
  split_col: Optional[str] = None,                                  # <DBR> 15.3 ML and above
  sample_weight_col: Optional[str] = None,                          # <DBR> 15.3 ML and above
) -> AutoMLSummary

Параметры регрессии

Наименование параметра Тип Описание
dataset str, , pandas.DataFramepyspark.DataFramepyspark.sql.DataFrame Имя входной таблицы или кадр данных, содержащий функции обучения и целевой объект. Имя таблицы может быть в формате "<database_name>".<>table_name или "<schema_name>".<>table_name" для таблиц, отличных от каталога Unity.
target_col str Имя столбца для целевой метки.
data_dir str формат dbfs:/<folder-name> Необязательно. Путь DBFS , используемый для хранения обучаемого набора данных. Этот путь виден как для драйверов, так и для рабочих узлов.

Databricks рекомендует оставить это поле пустым, поэтому AutoML может сохранить набор данных обучения в качестве артефакта MLflow.

Если указан пользовательский путь, набор данных не наследует разрешения на доступ к эксперименту AutoML.
exclude_cols List[str] Необязательно. Список столбцов, которые следует игнорировать во время вычислений AutoML.

Default: []
exclude_frameworks List[str] Необязательно. Список платформ алгоритмов, которые autoML не должны рассматриваться в качестве разработки моделей. Возможные значения: пустой список или одно или несколько из следующих — "sklearn", "lightgbm", "xgboost".

По умолчанию: [] (все платформы учитываются)
experiment_dir str Необязательно. Путь к каталогу в рабочей области для сохранения созданных записных книжек и экспериментов.

По умолчанию: /Users/<username>/databricks_automl/
experiment_name str Необязательно. Имя создаваемого эксперимента MLflow.

По умолчанию: имя создается автоматически.
feature_store_lookups List[Dict] Необязательно. Список словарей, представляющих функции из Хранилища компонентов для расширения данных. Допустимые ключи в каждом словаре:

* table_name (str): Обязательный. Имя таблицы признаков.
* lookup_key (список или стр.): Обязательный. Имена столбцов, которые используются в качестве ключа при присоединении к таблице компонентов с данными, переданными в dataset параме. Порядок имен столбцов должен соответствовать порядку первичных ключей таблицы признаков.
* timestamp_lookup_key(str): Требуется, если указанная таблица является таблицей функций временных рядов. Имя столбца, используемое при поиске на определенный момент времени в таблице признаков с данными, переданными в dataset параме.

Default: []
imputers Dict[str, Union[str, Dict[str, Any]]] Необязательно. Словарь, где каждый ключ является именем столбца, и каждое значение является строкой или словарем, описывающим стратегию вменения. Если значение указано в виде строки, оно должно иметь одно из значений: "mean", "median" или "most_frequent". Чтобы ввести в качестве словаря {"strategy": "constant", "fill_value": <desired value>}имя известного значения, укажите значение. Можно также указать параметры строки в качестве словарей, например {"strategy": "mean"}.

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

По умолчанию: {}
max_trials int Необязательно. Максимальное количество выполняемых пробных версий. Этот параметр доступен до версии Databricks Runtime 10.5 ML, но является устаревшим, начиная с Databricks Runtime 10.3 ML. Начиная с Databricks Runtime 11.0 ML, этот параметр не поддерживается.

По умолчанию: 20

Если timeout_minutes=None, AutoML выполняет максимальное число пробных запусков.
pos_label Union[int, bool, str] (Только классификация) Положительный класс. Он удобен для вычисления таких метрик, как точность и полнота. Он должен указываться только для задач двоичной классификации.
primary_metric str Метрика, используемая для оценки и ранжирования производительности модели.

Поддерживаемые метрики для регрессии: "r2" (по умолчанию), "mae", "rmse", "mse"

Поддерживаемые метрики для классификации: "f1" (по умолчанию), "log_loss", "precision", "accuracy", "roc_auc"
split_col str Необязательно. Имя столбца для разделенного столбца. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по пользовательским значениям, и этот столбец автоматически исключается из функций обучения.

Допустимый тип столбца — строка. Значение каждой записи в этом столбце должно быть одним из следующих значений: "train", "validate" или "test".
time_col str Доступно в Databricks Runtime 10.1 ML и более поздних версий.

Необязательно. Имя столбца для столбца времени.

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

Допустимые типы столбцов — метка времени и целое число. В Databricks Runtime 10.2 ML и более поздних версий также поддерживаются строковые столбцы.

Если тип столбца — строковый, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем.
timeout_minutes int Необязательно. Максимальное время ожидания завершения пробной версии AutoML. Более длительные тайм-ауты позволяют AutoML выполнять больше запусков и идентифицировать модель с большей точностью.

Значение по умолчанию: 120 минут

Минимальное значение: 5 минут

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.
sample_weight_col str Доступно в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API регрессии.

Необязательно. Имя столбца в наборе данных, содержащего примеры весов для каждой строки. Эти весы корректируют важность каждой строки во время обучения модели. Весы должны быть неотрицательных десятичных или целых значений, начиная от 0 до 10 000. Строки с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот столбец не указан, предполагается, что все строки имеют равный вес.

Прогноз

Метод databricks.automl.forecast настраивает запуск AutoML для обучения модели прогнозирования. Этот метод возвращает autoMLSummary. Чтобы использовать Auto-ARIMA, временные ряды должны иметь регулярную частоту (то есть интервал между двумя точками должен быть одинаковым во всех временных рядах). Частота должна соответствовать единице частоты, указанной в вызове API. AutoML обрабатывает пропущенные временные шаги, заполняя эти значения предыдущим.

databricks.automl.forecast(
  dataset: Union[pyspark.sql.DataFrame, pandas.DataFrame, pyspark.pandas.DataFrame, str],
  *,
  target_col: str,
  time_col: str,
  country_code: str = "US",                                         # <DBR> 12.0 ML and above
  data_dir: Optional[str] = None,
  exclude_frameworks: Optional[List[str]] = None,
  experiment_dir: Optional[str] = None,
  experiment_name: Optional[str] = None,                            # <DBR> 12.1 ML and above
  feature_store_lookups: Optional[List[Dict]] = None,               # <DBR> 12.2 LTS ML and above
  frequency: str = "D",
  horizon: int = 1,
  identity_col: Optional[Union[str, List[str]]] = None,
  output_database: Optional[str] = None,                            # <DBR> 10.5 ML and above
  primary_metric: str = "smape",
  timeout_minutes: Optional[int] = None,
) -> AutoMLSummary

Параметры прогнозирования

Наименование параметра Тип Описание
dataset str, , pandas.DataFramepyspark.DataFramepyspark.sql.DataFrame Имя входной таблицы или кадр данных, содержащий функции обучения и целевой объект.

Имя таблицы может быть в формате ".". или "." для таблиц каталога Unity, отличных от Unity
target_col str Имя столбца для целевой метки.
time_col str Имя столбца времени для прогнозирования.
frequency str Частота временных рядов для прогнозирования. Это период времени, в течение которого ожидается появление событий. По умолчанию используется значение "D", то есть данные по дням. Не забудьте изменить этот параметр, если ваши данные имеют другую частоту.

Возможные значения:

"W" (недели)

"D" / "days" / "day"

"hours" / "hour" / "hr" / "h"

"m" / "minute" / "min" / "minutes" / "T"

"S" / seconds" / "sec" / "second"

Следующие возможности доступны только в Databricks Runtime 12.0 ML и более поздних версиях:

"M" / "месяц" / "месяц" / "месяцы"

"Q" / "квартал" / "кварталы"

"Y" / "год" / "годы"

Значение по умолчанию: "D"
horizon int Количество периодов в будущем, для которых должны быть возвращены прогнозы.

Единицы измерения — частота временных рядов.

По умолчанию: 1
data_dir str формат dbfs:/<folder-name> Необязательно. Путь DBFS , используемый для хранения обучаемого набора данных. Этот путь виден как для драйверов, так и для рабочих узлов.

Databricks рекомендует оставить это поле пустым, поэтому AutoML может сохранить набор данных обучения в качестве артефакта MLflow.

Если указан пользовательский путь, набор данных не наследует разрешения на доступ к эксперименту AutoML.
exclude_frameworks List[str] Необязательно. Список платформ алгоритмов, которые autoML не должны рассматриваться в качестве разработки моделей. Возможные значения: пустой список или одно или несколько из следующих — "prophet", "arima".

По умолчанию: [] (все платформы учитываются)
experiment_dir str Необязательно. Путь к каталогу в рабочей области для сохранения созданных записных книжек и экспериментов.

По умолчанию: /Users/<username>/databricks_automl/
experiment_name str Необязательно. Имя создаваемого эксперимента MLflow.

По умолчанию: имя создается автоматически.
feature_store_lookups List[Dict] Необязательно. Список словарей, представляющих функции из Хранилища компонентов для расширения данных. Допустимые ключи в каждом словаре:

* table_name (str): Обязательный. Имя таблицы признаков.
* lookup_key (список или стр.): Обязательный. Имена столбцов, которые используются в качестве ключа при присоединении к таблице компонентов с данными, переданными в dataset параме. Порядок имен столбцов должен соответствовать порядку первичных ключей таблицы признаков.
* timestamp_lookup_key(str): Требуется, если указанная таблица является таблицей функций временных рядов. Имя столбца, используемое при поиске на определенный момент времени в таблице признаков с данными, переданными в dataset параме.

Default: []
identity_col Union[str, list] Необязательно. Столбцы, определяющие временные ряды для прогнозирования нескольких рядов. AutoML группирует по этим столбцам и столбцу времени для прогнозирования.
output_database str Необязательно. При условии AutoML сохраняет прогнозы лучшей модели в новой таблице в указанной базе данных.

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

Поддерживаемые метрики: "smape" (по умолчанию), "mse", "rmse", "mae" или "mdape".
timeout_minutes int Необязательно. Максимальное время ожидания завершения пробной версии AutoML. Более длительные тайм-ауты позволяют AutoML выполнять больше запусков и идентифицировать модель с большей точностью.

Значение по умолчанию: 120 минут

Минимальное значение: 5 минут

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.
country_code str Доступно в Databricks Runtime 12.0 ML и более поздних версиях. Поддерживается только моделью прогнозирования Пророка.

Необязательно. Двухбуквенный код страны, указывающий, какие праздники страны следует использовать модель прогнозирования. Чтобы игнорировать праздники, задайте для этого параметра пустую строку ("").

Поддерживаемые страны.

По умолчанию: США (США праздники).

Импорт записной книжки

Метод databricks.automl.import_notebook импортирует записную книжку, сохраненную в виде артефакта MLflow. Этот метод возвращает ImportNotebookResult.

databricks.automl.import_notebook(
  artifact_uri: str,
  path: str,
  overwrite: bool = False
) -> ImportNotebookResult:
Параметры Тип Описание
artifact_uri str URI артефакта MLflow, содержащего пробную записную книжку.
path str Путь в рабочей области Databricks, в которой записная книжка должна быть импортирована. Это должен быть абсолютный путь. Каталог будет создан, если он не существует.
overwrite bool Следует ли перезаписать записную книжку, если она уже существует. По умолчанию это False.

Пример импорта записной книжки

summary = databricks.automl.classify(...)
result = databricks.automl.import_notebook(summary.trials[5].artifact_uri, "/Users/you@yourcompany.com/path/to/directory")
print(result.path)
print(result.url)

AutoMLSummary

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

Свойство Type Описание
experiment mlflow.entities.Experiment Эксперимент MLflow, используемый для регистрации пробных запусков.
trials List[TrialInfo] Список объектов TrialInfo , содержащих сведения обо всех запущенных пробных версиях.
best_trial TrialInfo Объект TrialInfo, содержащий сведения о пробной версии, которая привела к оптимальной оценке для первичной метрики.
metric_distribution str Распределение взвешенных показателей для основной метрики по всем пробным запускам.
output_table_name str Используется только с прогнозированием и только в том случае, если поле output_database предоставлено.

Имя таблицы в output_database, содержащей прогнозы модели.

TrialInfo

Сводный объект для каждого отдельного пробного запуска.

Свойство Type Описание
notebook_path Optional[str] Путь к созданной записной книжке для этого пробного запуска в рабочей области.

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

Для прогнозирования это значение присутствует для всех пробных версий.
notebook_url Optional[str] URL-адрес созданной записной книжки для этого пробного запуска.

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

Для прогнозирования это значение присутствует для всех пробных версий.
artifact_uri Optional[str] URI артефакта MLflow для созданной записной книжки.
mlflow_run_id str Идентификатор запуска MLflow, связанный с этим пробным запуском.
metrics Dict[str, float] Метрики, зарегистрированные в MLflow для этого пробного запуска.
params Dict[str, str] Параметры, зарегистрированные в MLflow, которые использовались для этого пробного запуска.
model_path str URL-адрес артефакта MLflow модели, обученной в этом пробном запуске.
model_description str Краткое описание модели и гиперпараметров, используемых для обучения этой модели.
duration str Длительность обучения в минутах
preprocessors str Описание препроцессоров, выполняемых перед обучением модели.
evaluation_metric_score float Оценка основной метрики, вычисленная для набора данных для проверки.

TrialInfo имеет метод загрузки модели, созданной для пробной версии.

Метод Description
load_model() Загрузите модель, созданную при этом пробном запуске, зарегистрированную в качестве артефакта MLflow.

ImportNotebookResult

Свойство Type Описание
path str Путь в рабочей области Databricks, в которой записная книжка должна быть импортирована. Это должен быть абсолютный путь. Каталог будет создан, если он не существует.
url str URI артефакта MLflow, содержащего пробную записную книжку.