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

完了

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

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

  • ロジスティック回帰
  • 軽量勾配ブースティング マシン (GBM)
  • 意思決定ツリー
  • ランダム フォレスト
  • 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 です。 プライマリ メトリックは、最適なモデルを決定するためのターゲットのパフォーマンス メトリックです。 Azure Machine Learning では、タスクの種類ごとに一連の名前付きメトリックがサポートされます。

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

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

ヒント

プライマリ メトリックとその定義の完全な一覧については、「自動機械学習の実験結果を評価する」を参照してください。

制限を設定する

機械学習モデルをトレーニングすると、コンピューティング コストが発生します。 トレーニングに費やされるコストと時間を最小限に抑えるために、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
) 

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

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