Справочник по API Python AutoML
В этой статье описывается API Python AutoML, который предоставляет методы для запуска классификации, регрессии и прогнозирования запусков 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,
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
классифицировать параметры
Наименование параметра | Тип | Описание |
---|---|---|
dataset |
str
pandas.DataFrame
pyspark.DataFrame
pyspark.sql.DataFrame
|
Имя входной таблицы или кадр данных, содержащий функции обучения и целевой объект. Имя таблицы может быть в формате "<database_name>.<table_name>" или "<schema_name>.<table_name>для таблиц каталога, отличных от Unity. |
target_col |
str |
Имя столбца для целевой метки. |
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, создаваемого AutoML. По умолчанию: имя создается автоматически. |
exclude_cols |
List[str] |
Необязательно. Список столбцов, которые следует игнорировать во время вычислений AutoML. Default: [] |
exclude_frameworks |
List[str] |
Необязательно. Список фреймворков алгоритмов, которые AutoML не следует учитывать при разработке моделей. Возможные значения: пустой список или один или несколько "sklearn", "lightgbm", "xgboost". По умолчанию: [] (все платформы учитываются) |
feature_store_lookups |
List[Dict] |
Необязательно. Список словарей, представляющих функции из Хранилища компонентов для расширения данных. Допустимые ключи в каждом словаре:
По умолчанию: [] |
imputers |
Dict[str, Union[str, Dict[str, Any]]] |
Необязательно. Словарь, где каждый ключ является именем столбца, и каждое значение является строкой или словарем, описывающим стратегию вменения. Если значение указано в виде строки, оно должно иметь одно из значений: "mean", "median" или "most_frequent". Чтобы заменить на известное значение, укажите это значение в словаре {"strategy": "constant", "fill_value": <desired value>} . Можно также указать параметры строки в качестве словарей, например {"strategy": "mean"} .Если для столбца не указана стратегия импутации, AutoML выбирает стратегию по умолчанию на основе типа и содержимого столбца. При указании не заданного по умолчанию метода импутации, AutoML не выполняет обнаружение семантических типов. По умолчанию: {} |
pos_label |
Union[int, bool, str] |
(Только классификация) Положительный класс. Он удобен для вычисления таких метрик, как точность и полнота. Он должен указываться только для задач двоичной классификации. |
time_col |
str |
Доступно в Databricks Runtime 10.1 ML и последующих версиях. Необязательно. Имя столбца для столбца времени. Если это указано, AutoML пытается разделить набор данных на обучающий, проверяющий и тестовый наборы хронологично, используя самые ранние точки в качестве обучающих данных и последние точки в качестве тестового набора. Допустимые типы столбцов — метка времени и целое число. При использовании Databricks Runtime 10.2 ML и более поздних версий также поддерживаются строковые столбцы. Если тип столбца является строкой, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем. |
split_col |
str |
Необязательно. Имя для разделенного столбца. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по пользовательским значениям, и этот столбец автоматически исключается из функций обучения. Допустимый тип столбца — строка. Значение каждой записи в этом столбце должно быть одним из следующих значений: "train", "validate" или "test". |
sample_weight_col |
str |
Доступно в Databricks Runtime 15.4 ML и более поздних версиях для рабочих процессов API классификации. Необязательно. Имя столбца в наборе данных, содержащего примеры весов для каждой строки. Классификация поддерживает весы выборки для каждого класса. Эти весы корректируют важность каждого класса во время обучения модели. Каждый образец в классе должен иметь одинаковый вес образца, и веса должны быть неотрицательными десятичными или целыми значениями в диапазоне от 0 до 10 000. Классы с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот столбец не указан, предполагается, что все классы имеют равный вес. |
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
параметры регрессии
Наименование параметра | Тип | Описание |
---|---|---|
dataset |
str , pandas.DataFrame , pyspark.DataFrame , pyspark.sql.DataFrame |
Имя таблицы или датафрейма, содержащего признаки обучения и целевой показатель. Имя таблицы может быть в формате "<database_name>.<table_name>" или "<schema_name>.<table_name>для таблиц каталога, отличных от Unity. |
target_col |
str |
Имя столбца для целевой метки. |
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, который создается AutoML. По умолчанию: имя создается автоматически. |
exclude_cols |
List[str] |
Необязательно. Список столбцов, которые следует игнорировать во время вычислений AutoML. По умолчанию: [] |
exclude_frameworks |
List[str] |
Необязательно. Список фреймворков алгоритмов, которые AutoML не следует учитывать при разработке моделей. Возможные значения: пустой список или один либо несколько из "sklearn", "lightgbm", "xgboost". По умолчанию: [] (все платформы учитываются) |
feature_store_lookups |
List[Dict] |
Необязательно. Список словарей, представляющих функции из Хранилища компонентов для расширения данных. Допустимые ключи в каждом словаре:
По умолчанию: [] |
imputers |
Dict[str, Union[str, Dict[str, Any]]] |
Необязательно. Словарь, где каждый ключ является именем столбца, и каждое значение является строкой или словарем, описывающим стратегию вменения. Если значение указано в виде строки, оно должно иметь одно из значений: "mean", "median" или "most_frequent". Чтобы ввести известное значение, укажите его в виде словаря {"strategy": "constant", "fill_value": <desired value>} . Можно также указать параметры строки в качестве словарей, например {"strategy": "mean"} .Если для столбца не указана стратегия импутации, AutoML выбирает стратегию по умолчанию на основе типа столбца и содержимого. Если вы указываете метод импутации, отличный от заданного по умолчанию, AutoML не производит обнаружение семантических типов. По умолчанию: {} |
time_col |
str |
Доступно в Databricks Runtime 10.1 ML и более поздних версиях. Необязательно. Имя для столбца времени. Если это указано, AutoML пытается разделить набор данных на обучающий, проверяющий и тестовый наборы хронологично, используя самые ранние точки в качестве обучающих данных и последние точки в качестве тестового набора. Допустимые типы столбцов — метка времени и целое число. При использовании Databricks Runtime 10.2 ML и более поздних версий также поддерживаются строковые столбцы. Если тип столбца является строкой, AutoML пытается преобразовать его в метку времени с помощью семантического обнаружения. Если преобразование завершается сбоем, запуск AutoML тоже завершается сбоем. |
split_col |
str |
Необязательно. Имя для разделенного столбца. Доступно только в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API. Если это указано, AutoML пытается разделить наборы обучения и проверки и тестирования по пользовательским значениям, и этот столбец автоматически исключается из функций обучения. Допустимый тип столбца — строка. Значение каждой записи в этом столбце должно быть одним из следующих значений: "train", "validate" или "test". |
sample_weight_col |
str |
Доступно в Databricks Runtime 15.3 ML и более поздних версиях для рабочих процессов API регрессии. Необязательно. Имя столбца в наборе данных, содержащего примеры весов для каждой строки. Эти веса корректируют значимость каждой строки во время обучения модели. Весы должны быть неотрицательных десятичных или целых значений, начиная от 0 до 10 000. Строки с более высокими весами выборки считаются более важными и имеют большее влияние на алгоритм обучения. Если этот столбец не указан, предполагается, что все строки имеют равный вес. |
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 обрабатывает отсутствующие шаги времени, заполняя эти значения предыдущим значением.
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
параметры прогнозирования
Наименование параметра | Тип | Описание |
---|---|---|
dataset |
str , pandas.DataFrame pyspark.DataFrame pyspark.sql.DataFrame |
Имя входной таблицы или кадр данных, содержащий функции обучения и целевой объект. Имя таблицы может быть в формате ".". или "." для таблиц, не входящих в каталог Unity |
target_col |
str |
Имя столбца для целевой метки. |
time_col |
str |
Имя столбца времени для прогнозирования. |
primary_metric |
str |
Метрика, используемая для оценки и ранжирования производительности модели. Поддерживаемые метрики: "smape" (по умолчанию), "mse", "rmse", "mae" или "mdape". |
country_code |
str |
Доступно в Databricks Runtime 12.0 ML и более поздних версиях. Поддерживается только моделью прогнозирования Пророка. Необязательно. Двухбуквенный код страны, указывающий, какие праздники страны следует использовать модель прогнозирования. Чтобы игнорировать праздники, задайте для этого параметра пустую строку (""). Поддерживаемые страны. По умолчанию: США (США праздники). |
frequency |
str |
Частота временных рядов для прогнозирования. Это период времени, в течение которого ожидается появление событий. По умолчанию используется значение "D", то есть данные по дням. Не забудьте изменить этот параметр, если ваши данные имеют другую частоту. Возможные значения: "W" (недели) "D" / "дни" / "день" "часы" / "час" / "ч" / "ч" "м" / "минута" / "мин" / "минуты" / "T" "с" / "секунды" / "сек" / "секунда" Следующие возможности доступны только в 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, которое создаёт AutoML. По умолчанию: имя создается автоматически. |
exclude_frameworks |
List[str] |
Необязательно. Список фреймворков алгоритмов, которые AutoML не должен учитывать при разработке моделей. Возможные значения: пустой список или один или несколько из “prophet”, “arima”. По умолчанию: [] (все платформы учитываются) |
feature_store_lookups |
List[Dict] |
Необязательно. Список словарей, представляющих функции из Хранилища компонентов для ковариации данных. Допустимые ключи в каждом словаре:
По умолчанию: [] |
identity_col |
Union[str, list] |
Необязательно. Столбцы, идентифицирующие временные ряды для многосерийного прогнозирования. Группировка в AutoML выполняется по этим столбцам и по столбцу времени для прогнозирования. |
sample_weight_col |
str |
Доступно в Databricks Runtime 16.0 ML и более поздних версиях. Только для рабочих процессов с несколькими временными рядами. Необязательно. Указывает столбец в наборе данных, который содержит веса образцов. Эти весы указывают на относительную важность каждого временных рядов во время обучения и оценки модели. Временные ряды с более высоким весом имеют большее влияние на модель. Если это не указано, все временные ряды обрабатываются с одинаковым весом. Все строки, принадлежащие одному временным рядам, должны иметь одинаковый вес. Веса должны быть неотрицательными значениями, десятичными или целыми числами, и находиться в пределах от 0 до 10 000. |
output_database |
str |
Необязательно. При условии AutoML сохраняет прогнозы лучшей модели в новой таблице в указанной базе данных. Значение по умолчанию: прогнозы не сохраняются. |
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:
Параметры | Тип | Описание |
---|---|---|
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, описывающий метрики, параметры и другие сведения для каждой пробной версии. Также этот объект используется для загрузки модели, натренированной конкретной попыткой.
Свойство | Тип | Описание |
---|---|---|
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
Сводный объект для каждого отдельного испытания.
Свойство | Тип | Описание |
---|---|---|
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
имеет метод загрузки модели, созданной для пробной версии.
Метод | Описание |
---|---|
load_model() |
Загрузите модель, созданную при этом пробном запуске, зарегистрированную в качестве артефакта MLflow. |
ImportNotebookResult
Свойство | Тип | Описание |
---|---|---|
path |
str |
Путь в рабочей области Databricks, в которой записная книжка должна быть импортирована. Это должен быть абсолютный путь. Каталог будет создан, если он не существует. |
url |
str |
URI артефакта MLflow, содержащего тестовую записную книжку. |