Databricks AutoML Python API リファレンス

この記事では、分類、回帰、予測の AutoML 実行を開始するためのメソッドを提供する Databricks AutoML Python API について説明します。 各メソッドはモデルのセットを呼び出し、各モデルのトライアル デルを生成します。

ローコード UI オプションを含むAutoMLの詳細については、 AutoMLとは」を参照してください。

分類する

databricks.automl.classifyメソッドは、分類モデルをトレーニングするための AutoML 実行を構成します。

注:

max_trialsパラメーターは Databricks Runtime 10.4 ML では非推奨であり、Databricks Runtime 11.0 ML 以上ではサポートされていません。 AutoML 実行の期間を制御するには、 timeout_minutesを使用します。

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
) -> AutoMLSummary

分類する

名前

タイプ

説明

dataset

str, pandas.DataFrame, pyspark.DataFrame, pyspark.sql.DataFrame

トレーニング機能とターゲットを含むテーブル名または DataFrame を入力します。 テーブル名は、「<database_name>.<table_name>」または「<schema_name>.<table_name>」の形式( Unity Catalog以外のテーブルの場合)にすることができます。

target_col

str

ターゲット・ラベルの列名。

data_dir

str フォーマットの dbfs:/<folder-name>

随意。 トレーニング データセットを保存するために使用されるDBFSパス。 このパスは、ドライバー ノードとワーカー ノードの両方に表示されます。

Databricks では、AutoML がトレーニング データセットを MLflow アーティファクトとして保存できるように、このフィールドを空のままにしておくことを推奨しています。

カスタムパスが指定された場合、データセットはAutoML拡張機能のアクセス権限を継承しません。

exclude_cols

List[str]

随意。 AutoML 計算中に無視する列のリスト。

デフォルト: []

exclude_frameworks

List[str]

随意。 AutoML がモデルを開発する際に考慮すべきではないアルゴリズム フレームワークのリスト。 可能な値: 空のリスト、または「sklearn」、「lightgbm」、「xgboost」のうち 1 つ以上。

デフォルト: [] (すべてのフレームワークが考慮される)

experiment_dir

str

随意。 生成されたデータベースと実験を保存するワークスペース内のディレクトリへのパス。

デフォルト: /Users/<username>/databricks_automl/

experiment_name

str

随意。 MLflowが作成するAutoML 拡張機能の名前。

デフォルト: 名前は自動的に生成されます。

feature_store_lookups

List[Dict]

随意。 データ拡張のための Feature Store からの特徴を表す辞書のリスト。 各ディクショナリの有効なキーは次のとおりです。

  • table_name (str): 必須です。 特徴量テーブルの名前。

  • lookup_key (list または str): 必須です。 datasetパラメータで渡されたデータと特徴量テーブルを結合するときにキーとして使用する列名。 列名の順序は、特徴テーブルの主キーの順序と一致する必要があります。

  • timestamp_lookup_key (str): 指定されたテーブルが時系列特徴量テーブルである場合に必須です。 datasetパラメータで渡されたデータを使用して特徴量テーブルでポイントインタイム検索を実行するときに使用する列名。

デフォルト: []

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 ”

split_col

str

随意。 分割列の列名。 API ワークフローでは、Databricks Runtime 15.3 ML 以降でのみ使用できます。 指定されている場合、 AutoMLトレーニングする/検証/テスト セットをユーザー指定の値で分割しようとし、この列はトレーニング機能から自動的に除外されます。

受け入れられる列タイプは文字列です。 この列の各エントリの値は、「トレーニングする」、「検証する」、または「テスト」のいずれかである必要があります。

time_col

str

Databricks Runtime 10.1 ML 以降で利用できます。

随意。 時間列の列名。

指定されている場合、AutoML は、最も古いポイントをトレーニング データとして使用し、最新のポイントをテスト セットとして使用して、データセットを時系列でトレーニング セット、検証セット、テスト セットに分割しようとします。

受け入れられる列の型は、timestamp と integer です。 Databricks Runtime 10.2 ML 以降では、文字列列もサポートされます。

列の型が文字列の場合、AutoML はセマンティック検出を使用してそれをタイムスタンプに変換しようとします。 変換が失敗すると、AutoML の実行は失敗します。

timeout_minutes

int

随意。 AutoML トライアルが完了するまで待機する最大時間。 タイムアウトが長くなると、AutoML はより多くの試行を実行し、より正確なモデルを識別できるようになります。

デフォルト: 120 分

最小値: 5 分

タイムアウトが短すぎて、少なくとも 1 つの試行を完了できない場合は、エラーが報告されます。

sample_weight_col

str

回帰 API ワークフローでは、Databricks Runtime 15.3 ML 以降でのみ使用できます。

随意。 各行のサンプル重みを含むデータセット内の列名。 これらの重みは、モデルのトレーニング中に各行の重要度を調整します。 重みは、0 から 10,000 の範囲の非負の 10 進数値または整数値でなければなりません。 サンプルの重みが高い行は、より重要と見なされ、学習アルゴリズムに大きな影響を与えます。 この列を指定しない場合は、すべての行の重みが等しいと見なされます。

退歩する

databricks.automl.regressメソッドは、回帰モデルをトレーニングするための AutoML 実行を構成します。 このメソッドは、 AutoMLSummary を返します。

注:

max_trialsパラメーターは Databricks Runtime 10.4 ML では非推奨であり、Databricks Runtime 11.0 ML 以上ではサポートされていません。 AutoML 実行の期間を制御するには、 timeout_minutesを使用します。

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.DataFrame, pyspark.DataFrame, pyspark.sql.DataFrame

トレーニング機能とターゲットを含むテーブル名または DataFrame を入力します。 テーブル名は、「<database_name>.<table_name>」または「<schema_name>.<table_name>」の形式( Unity Catalog以外のテーブルの場合)にすることができます。

target_col

str

ターゲット・ラベルの列名。

data_dir

str フォーマットの dbfs:/<folder-name>

随意。 トレーニング データセットを保存するために使用されるDBFSパス。 このパスは、ドライバー ノードとワーカー ノードの両方に表示されます。

Databricks では、AutoML がトレーニング データセットを MLflow アーティファクトとして保存できるように、このフィールドを空のままにしておくことを推奨しています。

カスタムパスが指定された場合、データセットはAutoML拡張機能のアクセス権限を継承しません。

exclude_cols

List[str]

随意。 AutoML 計算中に無視する列のリスト。

デフォルト: []

exclude_frameworks

List[str]

随意。 AutoML がモデルを開発する際に考慮すべきではないアルゴリズム フレームワークのリスト。 可能な値: 空のリスト、または「sklearn」、「lightgbm」、「xgboost」のうち 1 つ以上。

デフォルト: [] (すべてのフレームワークが考慮される)

experiment_dir

str

随意。 生成されたデータベースと実験を保存するワークスペース内のディレクトリへのパス。

デフォルト: /Users/<username>/databricks_automl/

experiment_name

str

随意。 MLflowが作成するAutoML 拡張機能の名前。

デフォルト: 名前は自動的に生成されます。

feature_store_lookups

List[Dict]

随意。 データ拡張のための Feature Store からの特徴を表す辞書のリスト。 各ディクショナリの有効なキーは次のとおりです。

  • table_name (str): 必須です。 特徴量テーブルの名前。

  • lookup_key (list または str): 必須です。 datasetパラメータで渡されたデータと特徴量テーブルを結合するときにキーとして使用する列名。 列名の順序は、特徴テーブルの主キーの順序と一致する必要があります。

  • timestamp_lookup_key (str): 指定されたテーブルが時系列特徴量テーブルである場合に必須です。 datasetパラメータで渡されたデータを使用して特徴量テーブルでポイントインタイム検索を実行するときに使用する列名。

デフォルト: []

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 ”

split_col

str

随意。 分割列の列名。 API ワークフローでは、Databricks Runtime 15.3 ML 以降でのみ使用できます。 指定されている場合、 AutoMLトレーニングする/検証/テスト セットをユーザー指定の値で分割しようとし、この列はトレーニング機能から自動的に除外されます。

受け入れられる列タイプは文字列です。 この列の各エントリの値は、「トレーニングする」、「検証する」、または「テスト」のいずれかである必要があります。

time_col

str

Databricks Runtime 10.1 ML 以降で利用できます。

随意。 時間列の列名。

指定されている場合、AutoML は、最も古いポイントをトレーニング データとして使用し、最新のポイントをテスト セットとして使用して、データセットを時系列でトレーニング セット、検証セット、テスト セットに分割しようとします。

受け入れられる列の型は、timestamp と integer です。 Databricks Runtime 10.2 ML 以降では、文字列列もサポートされます。

列の型が文字列の場合、AutoML はセマンティック検出を使用してそれをタイムスタンプに変換しようとします。 変換が失敗すると、AutoML の実行は失敗します。

timeout_minutes

int

随意。 AutoML トライアルが完了するまで待機する最大時間。 タイムアウトが長くなると、AutoML はより多くの試行を実行し、より正確なモデルを識別できるようになります。

デフォルト: 120 分

最小値: 5 分

タイムアウトが短すぎて、少なくとも 1 つの試行を完了できない場合は、エラーが報告されます。

sample_weight_col

str

回帰 API ワークフローでは、Databricks Runtime 15.3 ML 以降でのみ使用できます。

随意。 各行のサンプル重みを含むデータセット内の列名。 これらの重みは、モデルのトレーニング中に各行の重要度を調整します。 重みは、0 から 10,000 の範囲の非負の 10 進数値または整数値でなければなりません。 サンプルの重みが高い行は、より重要と見なされ、学習アルゴリズムに大きな影響を与えます。 この列を指定しない場合は、すべての行の重みが等しいと見なされます。

予報

databricks.automl.forecastメソッドは、予測モデルをトレーニングするための AutoML 実行を構成します。 このメソッドは、 AutoMLSummary を返します。 Auto-ARIMA を使用するには、時系列に規則的な頻度が必要です (つまり、任意の 2 つのポイント間の間隔が時系列全体で同じである必要があります)。 周波数は、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.DataFrame, pyspark.DataFrame, pyspark.sql.DataFrame

トレーニング機能とターゲットを含むテーブル名または DataFrame を入力します。

テーブル名は、 Unity Catalog以外のテーブルの場合、「..」または「.」の形式で指定できます。

target_col

str

ターゲット・ラベルの列名。

time_col

str

予測用の時間列の名前。

frequency

str

予測の時系列の頻度。 これは、イベントの発生が予想される期間です。 デフォルト設定は「D」または日次データです。 データの頻度が異なる場合は、必ず設定を変更してください。

設定可能な値:

"W" (週)

「D」/「日」/「日」

"時間" / "時間" / "時間" / "時間" / "H"

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

「S」/「秒」/「秒」/「秒」

以下は、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" の 1 つ以上。

デフォルト: [] (すべてのフレームワークが考慮される)

experiment_dir

str

随意。 生成されたデータベースと実験を保存するワークスペース内のディレクトリへのパス。

デフォルト: /Users/<username>/databricks_automl/

experiment_name

str

随意。 MLflowが作成するAutoML 拡張機能の名前。

デフォルト: 名前は自動的に生成されます。

feature_store_lookups

List[Dict]

随意。 データ拡張のための Feature Store からの特徴を表す辞書のリスト。 各ディクショナリの有効なキーは次のとおりです。

  • table_name (str): 必須です。 特徴量テーブルの名前。

  • lookup_key (list または str): 必須です。 datasetパラメータで渡されたデータと特徴量テーブルを結合するときにキーとして使用する列名。 列名の順序は、特徴テーブルの主キーの順序と一致する必要があります。

  • timestamp_lookup_key (str): 指定されたテーブルが時系列特徴量テーブルである場合に必須です。 datasetパラメータで渡されたデータを使用して特徴量テーブルでポイントインタイム検索を実行するときに使用する列名。

デフォルト: []

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 分

タイムアウトが短すぎて、少なくとも 1 つの試行を完了できない場合は、エラーが報告されます。

country_code

str

Databricks Runtime 12.0 ML 以降で利用できます。 Prophet 予測モデルでのみサポートされます。

随意。 予測モデルで使用する国の祝日を示す 2 文字の国コード。 休日を無視するには、これを空の文字列 (“”) に設定します。

サポートされている国

デフォルト: US (米国の祝日)。

ノートブックをインポート

databricks.automl.import_notebookメソッドは、MLflow アーティファクトとして保存されたノートブックをインポートします。 このメソッドは ImportNotebookResult を返します。

databricks.automl.import_notebook(
  artifact_uri: str,
  path: str,
  overwrite: bool = False
) -> ImportNotebookResult:

パラメータ

タイプ

説明

artifact_uri

str

トライアル ノートブックを含む MLflow アーティファクトの URI。

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]

生成されたノートブックの MLflow アーティファクト URI。

mlflow_run_id

str

このトライアル実行に関連付けられた MLflow 実行 ID。

metrics

Dict[str, float]

メトリクスは、このトライアルのためにMLflowにログインしました。

params

Dict[str, str]

この試験に使用されたMLflowにログインしたユーザー。

model_path

str

このトライアルでトレーニングされたモデルの MLflow アーティファクト URL。

model_description

str

このモデルのトレーニングに使用されるモデルとハイパーパラメータの簡単な説明。

duration

str

トレーニング期間(分単位)。

preprocessors

str

モデルをトレーニングする前に実行されるプリプロセッサの説明。

evaluation_metric_score

float

検証パラメータに対して評価された主要なメトリックのスコア。

TrialInfo には、トライアル用に生成されたモデルを読み込むメソッドがあります。

メソッド

説明

load_model()

このトライアルで生成され、MLflow アーティファクトとしてログに記録されたモデルを読み込みます。

ImportNotebookResult

属性

タイプ

説明

path

str

ノートブックをインポートする Databricks ワークスペース内のパス。 これは絶対パスである必要があります。 ディレクトリが存在しない場合は作成されます。

url

str

トライアル ノートブックを含む MLflow アーティファクトの URI。