メインコンテンツまでスキップ

AutoML Python API リファレンス

この記事では、分類、回帰、予測の AutoML 実行を開始するメソッドを提供する AutoML Python API について説明します。 各メソッド呼び出しは、一連のモデルをトレーニングし、モデルごとに試用版ノートブックを生成します。

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

分類する

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

注記

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

Python
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

strpandas.DataFramepyspark.DataFramepyspark.sql.DataFrame

トレーニング機能とターゲットを含む入力テーブル名または データフレーム。 テーブル名の形式は "<database_name>.<table_name>" または "<schema_name>.<table_name>" です。 非 Unity Catalog テーブル用。

target_col

str

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

primary_metric

str

メトリクスは、モデルのパフォーマンスを評価およびランク付けするために使用されます。

回帰でサポートされているメトリクス: "r2" (デフォルト), "mae", "rmse", "mse"

分類でサポートされているメトリクス: "f1" (デフォルト), "log_loss", "precision", "accuracy", "ROC"

data_dir

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

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

DatabricksAutoMLでは、トレーニング データセットを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" の 1 つ以上。

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

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 はセマンティック型検出を実行しません。

デフォルト: {}

pos_label

Union[int, bool, str]

(分類のみ)ポジティブクラス。 これは、精度や再現率などのメトリクスを計算するのに役立ちます。 二項分類の問題に対してのみ指定する必要があります。

time_col

str

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

随意。 時間列の列名。

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

使用できる列のタイプは、timestamp と integer です。 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 の範囲の負でない 10 進数または整数値である必要があります。 サンプルの重みが高いクラスは、より重要視され、学習アルゴリズムに大きな影響を与えます。 この列を指定しない場合、すべてのクラスの重みが等しいと見なされます。

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 分

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

退行

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

注記

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

Python
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

Regress パラメーター

パラメーター名

タイプ

説明

dataset

strpandas.DataFramepyspark.DataFramepyspark.sql.DataFrame

トレーニング機能とターゲットを含む入力テーブル名または データフレーム。 テーブル名の形式は "<database_name>.<table_name>" または "<schema_name>.<table_name>" です。 非 Unity Catalog テーブル用。

target_col

str

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

primary_metric

str

メトリクスは、モデルのパフォーマンスを評価およびランク付けするために使用されます。

回帰でサポートされているメトリクス: "r2" (デフォルト), "mae", "rmse", "mse"

分類でサポートされているメトリクス: "f1" (デフォルト), "log_loss", "precision", "accuracy", "ROC"

data_dir

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

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

DatabricksAutoMLでは、トレーニング データセットを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" の 1 つ以上。

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

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 はセマンティック型検出を実行しません。

デフォルト: {}

time_col

str

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

随意。 時間列の列名。

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

使用できる列のタイプは、timestamp と integer です。 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 の範囲の負でない 10 進数または整数値である必要があります。 サンプルの重みが高い行は、より重要であると考えられ、学習アルゴリズムに大きな影響を与えます。 この列を指定しない場合、すべての行の重みが等しいと見なされます。

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 分

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

予報

databricks.automl.forecast メソッドは、予測モデルをトレーニングするための AutoML 実行を構成します。このメソッドは AutoMLSummary を返します。Auto-ARIMA を使用するには、時系列の頻度が規則的である必要があります (つまり、任意の 2 つのポイント間の間隔が時系列全体で同じである必要があります)。 頻度は、API 呼び出しで指定された頻度単位と一致する必要があります。 AutoML は、欠落しているタイム ステップを、それらの値に前の値で埋めることで処理します。

Python
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

Forecasting パラメーター

パラメーター名

タイプ

説明

dataset

strpandas.DataFramepyspark.DataFramepyspark.sql.DataFrame

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

テーブル名は、Unity Catalog 以外のテーブルの場合は ".." または "." の形式にすることができます

target_col

str

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

time_col

str

予測の時間列の名前。

primary_metric

str

メトリクスは、モデルのパフォーマンスを評価およびランク付けするために使用されます。

サポートされているメトリクス: "smape" (デフォルト), "mse", "rmse", "mae", or "mdape.

country_code

str

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

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

サポートされている国

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

frequency

str

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

指定できる値:

"W" (週)

「D」 / 「日」 / 「日」

"時間" / "時間" / "時間" / "h"

「m」 / 「分」 / 「分」 / 「t」

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

次のものは、Databricks Runtime 12.0 ML 以降でのみ使用できます。

「M」 / 「月」 / 「月」

「Q」/「四半期」/「四半期」

"Y" / "年" / "年"

デフォルト: "D"

horizon

int

予測を返す必要がある将来の期間の数。

単位は時系列周波数です。

デフォルト: 1

data_dir

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

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

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

カスタムパスが指定されている場合、データセットは AutoML エクスペリメントのアクセス権を継承しません。

experiment_dir

str

随意。 生成されたノートブックとエクスペリメントを保存するためのワークスペース内のディレクトリへのパス。

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

experiment_name

str

随意。 が作成する MLflowエクスペリメントの名前。AutoML

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

exclude_frameworks

List[str]

随意。 AutoML がモデルを開発する際に考慮してはならないアルゴリズム フレームワークの一覧。 可能な値: 空のリスト、または "prophet"、"arima" の 1 つ以上。

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

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 は、予測のためにこれらの列と時間列でグループ化します。

sample_weight_col

str

Databricks Runtime 16.0 ML 以降で使用できます。 マルチタイムシリーズ ワークフローのみ。

随意。 サンプルの重みを含むデータセット内の列を指定します。 これらの重みは、モデルのトレーニングと評価中の各時系列の相対的な重要度を示します。

重みが大きい時系列は、モデルへの影響が大きくなります。 指定しない場合、すべての時系列は同じ重みで扱われます。

同じ時系列に属するすべての行は、同じ重みを持つ必要があります。

重みは負でない値、10進数または整数で、0から10,000の間でなければなりません。

output_database

str

随意。 指定した場合、AutoML は最適なモデルの予測を、指定したデータベース内の新しいテーブルに保存します。

デフォルト: 予測は保存されません。

timeout_minutes

int

随意。 AutoML 試用版が完了するまで待機する最大時間。 タイムアウトが長くなると、AutoML でより多くの試行を実行し、より精度の高いモデルを特定できます。

デフォルト: 120 分

最小値: 5 分

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

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

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

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

パラメータ

タイプ

説明

artifact_uri

str

試用版ノートブックを含む MLflow アーティファクトの URI。

path

str

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

overwrite

bool

ノートブックがすでに存在する場合に上書きするかどうか。 デフォルトでは False です。

ノートブックのインポートの例

Python
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。