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


Справочник по API Python AutoML

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

Дополнительные сведения об 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,
  primary_metric: str = "f1",
  data_dir: Optional[str] = None,
  experiment_dir: Optional[str] = None,                             # <DBR> 10.4 LTS ML and above
  experiment_name: Optional[str] = None,                            # <DBR> 12.1 ML and above
  exclude_cols: Optional[List[str]] = None,                         # <DBR> 10.3 ML and above
  exclude_frameworks: Optional[List[str]] = None,                   # <DBR> 10.3 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
  pos_label: Optional[Union[int, bool, str]] = None,                 # <DBR> 11.1 ML and above
  time_col: Optional[str] = None,
  split_col: Optional[str] = None,                                  # <DBR> 15.3 ML and above
  sample_weight_col: Optional[str] = None                           # <DBR> 15.4 ML and above
  max_trials: Optional[int] = None,                                 # <DBR> 10.5 ML and below
  timeout_minutes: Optional[int] = None,
) -> AutoMLSummary

классифицировать parameters

Наименование параметра Тип Описание
dataset str, , pandas.DataFramepyspark.DataFramepyspark.sql.DataFrame Вводной параметр table - это имя или DataFrame, содержащий признаки обучения и цель. Table имя может быть в формате «<database_name>.<table_name>» или «<schema_name>.<table_name>» для случаев Catalogtables, отличающихся от Unity.
target_col str Column имя целевой метки.
primary_metric str Метрика, используемая для оценки и ранжирования производительности модели.

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

Поддерживаемые метрики для классификации: "f1" (по умолчанию), "log_loss", "precision", "accuracy", "roc_auc"
data_dir str формат dbfs:/<folder-name> Необязательно. Путь DBFS , используемый для хранения обучаемого набора данных. Этот путь виден как для драйверов, так и для рабочих узлов.

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

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

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

По умолчанию: имя создается автоматически.
exclude_cols List[str] Необязательно. List от columns для игнорирования во время расчетов AutoML.

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

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

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

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

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

По умолчанию: {}
pos_label Union[int, bool, str] (Только классификация) Положительный класс. Он удобен для вычисления таких метрик, как точность и полнота. Он должен указываться только для задач двоичной классификации.
time_col str Доступно в Databricks Runtime 10.1 ML и более поздних версий.

Необязательно. Column имя на время column.

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

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

Если тип column является строкой, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем.
split_col str Необязательно. Column имя разбиения column. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по заданным пользователем values, и этот column автоматически исключается из функций обучения.

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

Необязательно. Column имя в наборе данных, содержащее примеры весов для каждой строки. Классификация поддерживает весы выборки для каждого класса. Эти весы корректируют важность каждого класса во время обучения модели. Каждый образец в классе должен иметь одинаковый вес, и значения веса должны быть неотрицательными десятичными или целочисленными values, варьироваться от 0 до 10 000. Классы с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот column не указан, предполагается, что все классы имеют равный вес.
max_trials int Необязательно. Максимальное количество выполняемых пробных версий. Этот параметр доступен до версии Databricks Runtime 10.5 ML, но является устаревшим, начиная с Databricks Runtime 10.3 ML. Начиная с Databricks Runtime 11.0 ML, этот параметр не поддерживается.

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

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

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

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

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.

Регресс

Метод 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,
  primary_metric: str = "r2",
  data_dir: Optional[str] = None,
  experiment_dir: Optional[str] = None,                             # <DBR> 10.4 LTS ML and above
  experiment_name: Optional[str] = None,                            # <DBR> 12.1 ML and above
  exclude_cols: Optional[List[str]] = None,                         # <DBR> 10.3 ML and above
  exclude_frameworks: Optional[List[str]] = None,                   # <DBR> 10.3 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
  time_col: Optional[str] = None,
  split_col: Optional[str] = None,                                  # <DBR> 15.3 ML and above
  sample_weight_col: Optional[str] = None,                          # <DBR> 15.3 ML and above
  max_trials: Optional[int] = None,                                 # <DBR> 10.5 ML and below
  timeout_minutes: Optional[int] = None,
) -> AutoMLSummary

регресс parameters

Наименование параметра Тип Описание
dataset str, , pandas.DataFramepyspark.DataFramepyspark.sql.DataFrame Входные данные table - это название или DataFrame, содержащий обучающие признаки и целевые значения. Table имя может быть в формате "<database_name>.<table_name>" или "<schema_name>.<table_name>" для Catalogtables, которые не относятся к Unity.
target_col str Column название целевой метки.
primary_metric str Метрика, используемая для оценки и ранжирования производительности модели.

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

Поддерживаемые метрики для классификации: "f1" (по умолчанию), "log_loss", "precision", "accuracy", "roc_auc"
data_dir str формат dbfs:/<folder-name> Необязательно. Путь DBFS , используемый для хранения обучаемого набора данных. Этот путь виден как для драйверов, так и для рабочих узлов.

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

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

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

По умолчанию: имя создается автоматически.
exclude_cols List[str] Необязательно. List из columns следует игнорировать во время вычислений AutoML.

Default: []
exclude_frameworks List[str] Необязательно. List платформ алгоритмов, которые AutoML не должен учитывать при разработке моделей. Возможные values: пустой list, или один или несколько из «sklearn», «lightgbm», «xgboost».

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

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

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

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

По умолчанию: {}
time_col str Доступно в Databricks Runtime 10.1 ML и более поздних версий.

Необязательно. Column имя на время column.

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

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

Если тип column является строкой, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем.
split_col str Необязательно. Column имя разбиения column. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по заданным пользователем values, и этот column автоматически исключается из функций обучения.

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

Необязательно. Column имя в наборе данных, содержащее веса выборки для каждой строки. Эти весы корректируют важность каждой строки во время обучения модели. Веса должны быть неотрицательными десятичными или целочисленными значениями values, в диапазоне от 0 до 10 000. Строки с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот column не указан, предполагается, что все строки имеют равный вес.
max_trials int Необязательно. Максимальное количество выполняемых пробных версий. Этот параметр доступен до версии Databricks Runtime 10.5 ML, но является устаревшим, начиная с Databricks Runtime 10.3 ML. Начиная с Databricks Runtime 11.0 ML, этот параметр не поддерживается.

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

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

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

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

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.

Прогноз

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

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

прогнозирование parameters

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

Table имя может быть в формате ".". или "." для Catalogtables, отличных от Unity
target_col str Column имя целевой метки.
time_col str Название метки времени column для прогнозирования.
primary_metric str Метрика, используемая для оценки и ранжирования производительности модели.

Поддерживаемые метрики: "smape" (по умолчанию), "mse", "rmse", "mae" или "mdape".
country_code str Доступно в Databricks Runtime 12.0 ML и более поздних версиях. Поддерживается только моделью прогнозирования Пророка.

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

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

По умолчанию: США (США праздники).
frequency str Частота временных рядов для прогнозирования. Это период времени, в течение которого ожидается появление событий. По умолчанию используется значение "D", то есть данные по дням. Не забудьте изменить этот параметр, если ваши данные имеют другую частоту.

Возможные values:

"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.
experiment_dir str Необязательно. Путь к каталогу в рабочей области для сохранения созданных записных книжек и экспериментов.

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

По умолчанию: имя создается автоматически.
exclude_frameworks List[str] Необязательно. List платформы алгоритмов, которые AutoML не должна учитывать при разработке моделей. Возможные values: пустая list, или один или несколько "пророка", "arima".

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

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

Default: []
identity_col Union[str, list] Необязательно. Column(s), которые определяют временные ряды для многосерийного прогноза. AutoML группирует по этим columnи времени column для прогнозирования.
sample_weight_col str Доступно в Databricks Runtime 16.0 ML и более поздних версиях. Только для рабочих процессов с несколькими временными рядами.

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

Временные ряды с более высоким весом имеют большее влияние на модель. Если это не указано, все временные ряды обрабатываются равным весом.

Все строки, принадлежащие одному временным рядам, должны иметь одинаковый вес.

Весы должны быть неотрицательных values, десятичных или целых чисел, а также от 0 до 10 000.
output_database str Необязательно. Если это указано, AutoML сохраняет прогнозы лучшей модели в новом table в указанной базе данных.

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

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

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

Если тайм-аут слишком мал для по крайней мере одного пробного выполнения, выводится сообщение об ошибке.

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

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

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

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

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

TrialInfo

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

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

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

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

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

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

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

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

ImportNotebookResult

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