自動機械学習の実験を実行する

完了

自動機械学習 (AutoML) 実験を実行するには、Python SDK を使用してジョブを構成して送信します。

AutoML で使用されるアルゴリズムは、指定したタスクによって異なります。 たとえば、分類モデルをトレーニングする場合、AutoML は分類アルゴリズムの一覧から選択します。

  • ロジスティック回帰
  • 軽量勾配ブースティング マシン (LightGBM)
  • 決定木
  • ランダム フォレスト
  • ナイーブベイズ (Naive Bayes)
  • 線形サポート ベクター マシン (SVM)
  • XGBoost
  • その他...

ヒント

サポートされているアルゴリズムの完全な一覧については、サポートされているアルゴリズム の概要確認してください。

アルゴリズムの選択を制限する

既定では、AutoML は、指定されたタスクのすべてのアルゴリズムからランダムに選択します。 個々のアルゴリズムが選択されないようにすることができます。これは、データが特定の種類のアルゴリズムに適していないことがわかっている場合に役立ちます。 組織内で使用できる機械学習アルゴリズムの種類を制限するポリシーに準拠する必要がある場合は、特定のアルゴリズムをブロックできます。

AutoML 実験を構成する

Python SDK (v2) を使用して AutoML 実験またはジョブを構成する場合は、automl クラスを使用して実験を構成します。 分類には、次の例に示すように automl.classification 関数を使用します。

from azure.ai.ml import automl

# configure the classification job
classification_job = automl.classification(
    compute="aml-cluster",
    experiment_name="auto-ml-class-dev",
    training_data=my_training_data_input,
    target_column_name="Diabetic",
    primary_metric="accuracy",
    n_cross_validations=5,
    enable_model_explainability=True
)

AutoML には、入力として MLTable データ資産が必要です。 この例では、my_training_data_input は、Azure Machine Learning ワークスペースで作成された MLTable データ資産を参照します。

プライマリ メトリックを指定する

指定する必要がある最も重要な設定の 1 つは、primary_metricです。 AutoML では、主要メトリックを使用して、トレーニングされたすべてのモデルをランク付けし、最適なモデルを選択します。 Azure Machine Learning では、タスクの種類ごとに名前付きメトリックのセットがサポートされています。

分類モデルをトレーニングするときに使用できるメトリックの一覧を取得するには、次に示すように ClassificationPrimaryMetrics 関数を使用します。

from azure.ai.ml.automl import ClassificationPrimaryMetrics
 
list(ClassificationPrimaryMetrics)

ヒント

主要メトリックとその定義の完全な一覧は、自動機械学習実験の結果 評価にあります。

制限を設定する

各モデル AutoML トレーニングは、コンピューティング リソースを消費します。 コストとトレーニング時間を制御するには、 set_limits()を使用して AutoML ジョブの制限を設定します。

AutoML 実験に制限を設定するには、いくつかのオプションがあります。

  • timeout_minutes: 完了した AutoML 実験が終了するまでの時間 (分)。
  • trial_timeout_minutes: 1 回の試用に要する最大時間 (分)。
  • max_trials: トレーニングされたモデルの試行回数または最大数。
  • enable_early_termination: スコアが短期的に改善されない場合に実験を終了するかどうか。
classification_job.set_limits(
    timeout_minutes=60, 
    trial_timeout_minutes=20, 
    max_trials=5,
    enable_early_termination=True,
)

時間を節約するために、複数の試用版を並列で実行することもできます。 コンピューティング クラスターを使用する場合は、ノードと同じ数の並列試用版を使用できます。 したがって、並列試行の最大数は、コンピューティング クラスターに含まれるノードの最大数に関連します。 並列試行の最大数をノードの最大数より小さく設定する場合は、max_concurrent_trialsを使用できます。

トレーニングプロパティを設定する

AutoML では、特徴量化とアルゴリズムのさまざまな組み合わせを試して、機械学習モデルをトレーニングします。 特定のアルゴリズムがデータに適していないことが既にわかっている場合は、使用可能なアルゴリズムのサブセットを除外 (または含める) ことができます。

AutoML でアンサンブル モデルの使用を許可するかどうかを選択することもできます。

AutoML 実験を送信する

AutoML ジョブは、次のコードで送信できます。

# submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
) 

Azure Machine Learning Studio で AutoML ジョブの実行を監視できます。 次のコードを実行して AutoML ジョブへの直接リンクを取得するには:

aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)