ラベル | 説明 | データ タイプ |
入力トレーニング フィーチャ | モデルのトレーニングに使用される入力フィーチャクラス。 | Feature Layer; Table View |
出力モデル | ディープ ラーニング パッケージとして保存される出力トレーニング済みモデル (.dlpk ファイル)。 | File |
予測対象変数 | モデルのトレーニングに使用される値を含む [入力トレーニング フィーチャ] パラメーターのフィールド。 このフィールドには、不明なロケーションでの予測に使用される変数の既知 (トレーニング) の値が含まれます。 | Field |
変数をカテゴリとして処理 (オプション) | [予測対象変数] パラメーター値をカテゴリ変数として扱うかどうかを指定します。
| Boolean |
説明トレーニング変数 (オプション) | [予測対象変数] パラメーター値の値またはカテゴリの予測に役立つ説明変数を表すフィールドのリスト。 クラスまたはカテゴリを表す変数 (土地被覆や有無など) の場合に付随するチェックボックスをオンにします。 | Value Table |
説明トレーニング距離フィーチャ (オプション) | このフィーチャの入力トレーニング フィーチャからの距離が自動的に推定され、より多くの説明変数として追加されます。 入力された各説明トレーニング距離フィーチャから最近隣の入力トレーニング フィーチャまでの距離が算出されます。 ポイントおよびポリゴン フィーチャがサポートされており、入力された説明トレーニング距離フィーチャがポリゴンの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。 | Feature Layer |
説明トレーニング ラスター (オプション) | このラスターの値がラスターから抽出され、モデルの説明変数と見なされます。 各レイヤーが、1 つの説明変数を形成します。 入力トレーニング フィーチャのフィーチャごとに、該当する位置でラスター セルの値が抽出されます。 連続ラスターからラスター値を抽出する場合には、共一次内挿法によるラスターのリサンプリングが使用されます。 カテゴリ ラスターからラスター値を抽出する場合には、最近隣内挿法による近接割り当てが使用されます。 [入力トレーニング フィーチャ] パラメーター値にポリゴンが含まれ、このパラメーターに値を入力した場合、各ポリゴンの 1 つのラスター値がそのモデルで使用されます。 各ポリゴンには、連続ラスターの場合は平均値、カテゴリ ラスターの場合は最頻値が割り当てられています。 クラスまたはカテゴリを表すラスター (土地被覆や有無など) の場合に [カテゴリ] 列チェックボックスをオンにします。 | Value Table |
合計制限時間 (分) (オプション) | AutoML モデル トレーニングに使用する合計時間の制限を分で示した値。 デフォルト値は 60 (1 時間) です。 | Double |
AutoML モード (オプション) | AutoML の目的と AutoML の検索がどの程度徹底的に行われるかを指定します。
| String |
アルゴリズム (オプション) | トレーニング中に使用されるアルゴリズムを指定します。 デフォルトでは、すべてのアルゴリズムが使用されます。
| String |
検証率 (オプション) | 検証に使用される入力データのパーセンテージ。 デフォルト値は 10 です。 | Long |
出力レポート (オプション) | .html ファイルとして生成される出力レポート。 指定されたパスが空でない場合、レポートは指定されたパスの下の新しいフォルダーに作成されます。 レポートには、さまざまなモデルの詳細と、各モデルの評価およびパフォーマンス中に使用されたハイパーパラメーターの詳細が含まれます。 ハイパーパラメーターは、トレーニング プロセスをコントロールするパラメーターです。 トレーニング中には更新されず、モデル アーキテクチャ、学習率、エポック数などを含みます。 | File |
出力重要度テーブル (オプション) | モデルで使用されている各説明変数 (フィールド、距離フィーチャ、およびラスター) の重要度に関する情報を含む出力テーブル。 | Table |
出力フィーチャクラス (オプション) | トレーニング フィーチャ レイヤーで最高のパフォーマンスを発揮するモデルによる予測値を含むフィーチャ レイヤー。 これを使用して、予測値をグラウンド トゥルースと視覚的に比較することにより、モデルのパフォーマンスを検証できます。 | Feature Class |
画像添付ファイルの追加 (オプション) | マルチモーダルまたは混合データ モデルのトレーニングで、画像を [入力トレーニング フィーチャ] パラメーター値の説明変数として使用するかどうかを指定します。 マルチモーダルまたは混合データ表形式モデルのトレーニングでは、AutoML の機械学習およびディープ ラーニング バックボーンを使用して、単一モデルによって複数タイプのデータ形式から学習します。 入力データは、テキストの説明、対応する画像、追加のカテゴリ変数および連続変数など、さまざまなデータ ソースのセットの説明変数の組み合わせで構成されます。
| Boolean |
機密的なフィーチャの属性 (オプション) |
分類モデルおよび回帰モデルのテーブル データのトレーニング済みモデルの公平性を評価し、改善します。 このパラメーターには、次の 2 つのコンポーネントを設定します。
| Value Table |
公平性メトリック (オプション) | 分類および回帰の問題の公平性を計測するために使用される公平性メトリックを指定します。これは、最適な公平性モデルを選択するためのグリッド検索で使用されます。
| String |
サマリー
トレーニング パイプラインを構築し、トレーニング プロセスの多くを自動化することで、ディープ ラーニング モデルをトレーニングします。 これには、探索的データ解析、フィーチャの選択、フィーチャ エンジニアリング、モデルの選択、ハイパーパラメーターの調整、およびモデル トレーニングが含まれます。 その出力には、トレーニング データの最適モデルのパフォーマンス指標と、[AutoML を使用した予測 (Predict Using AutoML)] ツールの入力として使用し、新しいデータセットを予測できるトレーニング済みのディープ ラーニング モデル パッケージ (.dlpk) が含まれます。
使用法
ArcGIS AllSource に Python の適切なディープ ラーニング フレームワーク パッケージをインストールする必要があります。
ツールがトレーニング済みモデルを作成するのにかかる時間は、以下に応じて異なります。
- トレーニング中に入力されるデータの量
- [AutoML モード] パラメーターの値
デフォルトで、すべてのモードのタイマーは 60 分に設定されています。 トレーニングで使用されるデータ量にかかわらず、[AutoML モード] パラメーターの[基本] オプションでは、最適モデルの検索に 60 分はかかりません。 この適合プロセスは、最適モデルが特定されると即座に完了します。 [高度] オプションでは、フィーチャ エンジニアリング、フィーチャの選択、ハイパーパラメーターの調整などの追加タスクを行うため、より多くの時間を要します。 入力から複数のフィーチャを組み合わせることによって得られる新しいフィーチャのほか、ツールは、zone3_id から zone7_id までの名前を持つ空間フィーチャを作成します。 新しいフィーチャは、入力データ内の位置情報から抽出され、より最適なモデルをトレーニングするために使用されます。 新しい空間フィーチャの詳細については、「AutoML の仕組み」をご参照ください。 トレーニングされるデータの量が多いと、モデルのすべての組み合わせを 60 分以内に評価できない場合があります。 そのような場合、60 分以内に特定された最高パフォーマンスのモデルが、最適なモデルと見なされます。 続いて、このモデルを使用するか、[合計制限時間 (分)] パラメーターの値を大きくしてツールを再実行できます。
ラスターを説明変数として使用するには、ArcGIS Spatial Analyst extension のライセンスが必要です。
[出力レポート] パラメーター値は、作業ディレクトリの情報を確認する方法を提供する HTML 形式のファイルです。
出力レポートの最初のページには、評価された各モデルへのリンクが含まれており、検証データセットでのパフォーマンスと、トレーニングにかかった時間も表示されます。 評価指標に基づき、レポートには、選択された最高パフォーマンスのモデルが示されます。
RMSE は回帰問題のデフォルトの評価指標であり、Logloss は分類問題のデフォルトの指標です。 出力レポートでは、次の指標を使用できます。
- 分類 - AUC、Logloss、F1、Accuracy、Average Precision
- 回帰 - MSE、RMSE、MAE、R2、MAPE、Spearman 係数、Pearson 係数
モデルの組み合わせをクリックすると、学習曲線、変数の重要度曲線、使用されるハイパーパラメーターなど、そのモデルの組み合わせのトレーニングに関する詳細が表示されます。
このツールの使用例には、気象要因に基づく年間太陽エネルギー生成モデルのトレーニング、関連する変数を使用した作物予測モデルのトレーニング、住宅価値予測モデルのトレーニングなどがあります。
このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問」をご参照ください。
[画像添付ファイルの追加] パラメーターを使用する場合は、以下の手順で、画像を添付するための [入力トレーニング フィーチャ] パラメーターの値を設定します。
- フィーチャ レイヤーに、各レコードの画像ファイル パスを格納したフィールドが含まれていることを確認します。
- [アタッチメントの有効化 (Enable Attachments)] ツールを使用して、フィーチャ レイヤーの添付ファイルを有効化します。
- [アタッチメントの追加 (Add Attachments)] ツールを使用して、画像パス フィールドを指定し、画像添付ファイルとしてフィーチャ レイヤーに追加します。
パラメーター
arcpy.geoai.TrainUsingAutoML(in_features, out_model, variable_predict, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {total_time_limit}, {autoML_mode}, {algorithms}, {validation_percent}, {out_report}, {out_importance}, {out_features}, {add_image_attachments}, {sensitive_feature}, {fairness_metric})
名前 | 説明 | データ タイプ |
in_features | モデルのトレーニングに使用される入力フィーチャクラス。 | Feature Layer; Table View |
out_model | ディープ ラーニング パッケージとして保存される出力トレーニング済みモデル (.dlpk ファイル)。 | File |
variable_predict | モデルのトレーニングに使用される値を含む in_features パラメーターのフィールド。 このフィールドには、不明なロケーションでの予測に使用される変数の既知 (トレーニング) の値が含まれます。 | Field |
treat_variable_as_categorical (オプション) | variable_predict パラメーター値をカテゴリ変数として扱うかどうかを指定します。
| Boolean |
explanatory_variables [explanatory_variables,...] (オプション) | variable_predict パラメーター値の値またはカテゴリの予測に役立つ説明変数を表すフィールドのリスト。 クラスまたはカテゴリを表す変数 (土地被覆や有無など) の場合は True 値 ("<name_of_variable> true") を渡します。 | Value Table |
distance_features [distance_features,...] (オプション) | このフィーチャの入力トレーニング フィーチャからの距離が自動的に推定され、より多くの説明変数として追加されます。 入力された各説明トレーニング距離フィーチャから最近隣の入力トレーニング フィーチャまでの距離が算出されます。 ポイントおよびポリゴン フィーチャがサポートされており、入力された説明トレーニング距離フィーチャがポリゴンの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。 | Feature Layer |
explanatory_rasters [explanatory_rasters,...] (オプション) | このラスターの値がラスターから抽出され、モデルの説明変数と見なされます。 各レイヤーが、1 つの説明変数を形成します。 入力トレーニング フィーチャのフィーチャごとに、該当する位置でラスター セルの値が抽出されます。 連続ラスターからラスター値を抽出する場合には、共一次内挿法によるラスターのリサンプリングが使用されます。 カテゴリ ラスターからラスター値を抽出する場合には、最近隣内挿法による近接割り当てが使用されます。 in_features パラメーター値にポリゴンが含まれ、このパラメーターに値を入力した場合、各ポリゴンの 1 つのラスター値がそのモデルで使用されます。 各ポリゴンには、連続ラスターの場合は平均値、カテゴリ ラスターの場合は最頻値が割り当てられています。 クラスまたはカテゴリを表すラスター (土地被覆や有無など) の場合は、"<name_of_raster> true" を使用して True 値を渡します。 | Value Table |
total_time_limit (オプション) | AutoML モデル トレーニングに使用する合計時間の制限を分で示した値。 デフォルト値は 60 (1 時間) です。 | Double |
autoML_mode (オプション) | AutoML の目的と AutoML の検索がどの程度徹底的に行われるかを指定します。
| String |
algorithms [algorithms,...] (オプション) | トレーニング中に使用されるアルゴリズムを指定します。
デフォルトでは、すべてのアルゴリズムが使用されます。 | String |
validation_percent (オプション) | 検証に使用される入力データのパーセンテージ。 デフォルト値は 10 です。 | Long |
out_report (オプション) | .html ファイルとして生成される出力レポート。 指定されたパスが空でない場合、レポートは指定されたパスの下の新しいフォルダーに作成されます。 レポートには、さまざまなモデルの詳細と、各モデルの評価およびパフォーマンス中に使用されたハイパーパラメーターの詳細が含まれます。 ハイパーパラメーターは、トレーニング プロセスをコントロールするパラメーターです。 トレーニング中には更新されず、モデル アーキテクチャ、学習率、エポック数などを含みます。 | File |
out_importance (オプション) | モデルで使用されている各説明変数 (フィールド、距離フィーチャ、およびラスター) の重要度に関する情報を含む出力テーブル。 | Table |
out_features (オプション) | トレーニング フィーチャ レイヤーで最高のパフォーマンスを発揮するモデルによる予測値を含むフィーチャ レイヤー。 これを使用して、予測値をグラウンド トゥルースと視覚的に比較することにより、モデルのパフォーマンスを検証できます。 | Feature Class |
add_image_attachments (オプション) | マルチモーダルまたは混合データ モデルのトレーニングで、画像を in_features パラメーター値の説明変数として使用するかどうかを指定します。 マルチモーダルまたは混合データ表形式モデルのトレーニングでは、AutoML の機械学習およびディープ ラーニング バックボーンを使用して、単一モデルによって複数タイプのデータ形式から学習します。 入力データは、テキストの説明、対応する画像、追加のカテゴリ変数および連続変数など、さまざまなデータ ソースのセットの説明変数の組み合わせで構成されます。
| Boolean |
sensitive_feature [sensitive_feature,...] (オプション) |
分類モデルおよび回帰モデルのテーブル データのトレーニング済みモデルの公平性を評価し、改善します。 このパラメーターには、次の 2 つのコンポーネントを設定します。
| Value Table |
fairness_metric (オプション) | 分類および回帰の問題の公平性を計測するために使用される公平性メトリックを指定します。これは、最適な公平性モデルを選択するためのグリッド検索で使用されます。
| String |
コードのサンプル
この例では、TrainUsingAutoML 関数を使用する方法を示します。
# Name: TrainUsingAutoML.py
# Description: Train a machine learning model on feature or tabular data with
# automatic hyperparameter selection.
# Import system modules
import arcpy
import os
# Set local variables
datapath = "path_to_data"
out_path = "path_to_trained_model"
in_feature = os.path.join(datapath, "train_data.gdb", "name_of_data")
out_model = os.path.join(out_path, "model.dlpk")
# Run Train Using AutoML Model
arcpy.geoai.TrainUsingAutoML(in_feature, out_model, "price", None,
"bathrooms #;bedrooms #;square_fee #", None, None,
60, "BASIC")