フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression) (空間統計)

サマリー

Leo Breiman および Adele Cutler が開発したランダム フォレスト アルゴリズム、または Tianqi Chen および Carlos Guestrin が開発した Extreme Gradient Boosting (XGBoost) アルゴリズムの 2 つの教師付き機械学習方法のいずれかを使用して、モデルの作成と予測の生成を行います。 予測は、カテゴリ変数 (分類) と連続変数 (回帰) の両方に対して実行できます。 説明変数は、追加変数として用いる近接値の算出に使用されるトレーニング フィーチャ、ラスター データセット、および距離フィーチャの属性テーブル内のフィールドの形を取ることができます。 トレーニング データに基づいてモデルのパフォーマンスを検証するだけでなく、フィーチャまたは予測ラスターに対して予測を行うこともできます。

フォレストベースおよびブースト分類と回帰分析の機能の詳細

フォレストベースの分類と回帰分析ツールの図

使用法

  • このツールでは、フォレストベースと勾配ブーストの 2 種類のモデルをサポートします。 どちらのモデル タイプも、予測に使用できるモデルを作成するために、何百にも上るツリー (決定木のアンサンブルと呼ばれる) が作成されます。

    • [フォレストベース] - バギング手法を応用してモデルを作成します。それぞれの決定木は並行して作成され、元の (トレーニング) データのランダムに生成された部分が使用されます。 ツリーごとに独自の予測が生成され、結果が決定されます。 フォレストベース モデルでは、不明なサンプルの結果を予測または分類するために、すべての決定木から得た決定を考慮します。 個々のツリーにはモデルの過剰適合の問題があることが考えられるため、この処理は非常に重要です。予測用にフォレスト内の複数のツリーを組み合わせると、単一のツリーに関連する過剰適合の問題に対処できます。 このモデルは必要なパラメーターが少なく、より直感的に使用できます。
    • [勾配ブースティング] - ブースティング手法を応用してモデルを作成します。それぞれの決定木は、元の (トレーニング) データを使用して順次連続的に作成されます。 後続の各ツリーが前のツリーの誤差を修正するため、モデルで複数の弱学習器が組み合わされて強力な予測モデルになります。 勾配ブースティング モデルには、正規化と早期停止手法が導入されているため、過剰適合を避けることができます。 このモデルはハイパーパラメーターを柔軟に制御でき、より複雑です。
  • このツールは、トレーニング、フィーチャに関する予測、ラスターに関する予測の 3 つの操作モードで使用されます。 [予測タイプ] パラメーターで [トレーニングのみ] オプションを使用すると、さまざまな説明変数およびツール設定を調査しながら、異なるモデルのパフォーマンスを評価できます。 適切なモデルが見つかったら、[フィーチャに関する予測] または [ラスターに関する予測] オプションを使用できます。

  • このツールはデータドリブンであり、大規模なデータセットで最適に動作します。 最適な結果を得るためには、少なくとも数百のフィーチャに対してこのツールをトレーニングする必要があります。 このツールは、小規模なデータセットには適していません。

  • [入力トレーニング フィーチャ] パラメーター値として、ポイントまたはポリゴンを指定できます。 このツールをマルチパート データに使用することはできません。

  • ArcGIS Spatial Analyst エクステンション ライセンスは、ラスターを説明変数として使用する場合または [出力予測サーフェス] 値に関して予測を行う場合に必要となります。

  • このツールは、次のようなオプションの出力を生成します。

    • [出力トレーニング済みフィーチャ] - モデルで使用されているすべての [入力トレーニング フィーチャ] 値とすべての説明変数を含むフィーチャクラス。 説明変数には、使用されている入力フィールド、算出された距離、抽出または算出されたラスター値が含まれます。 フィーチャクラスには、[入力トレーニング フィーチャ] 値のすべてのフィーチャの予測も含まれます。 これには、モデルのトレーニングと整合チェックに使用されたフィーチャも含まれます。 予測対象変数がカテゴリ変数ではない場合、フィーチャクラスには、各予測に対する残差と標準化残差が含まれます。 予測対象変数がカテゴリ変数である場合、フィーチャクラスには、モデルが各予測を正しく分類したかどうかを指定する Correctly Classified フィールドが含まれます。 Residual フィールドと Standard Residual フィールド、または Correctly Classified フィールドを使用し、作成されたモデルのパフォーマンスを評価します。
    • [出力トレーニング済みモデル ファイル] - トレーニング済みモデルの結果を含む、再利用可能なファイル。 このファイルを [空間統計モデル ファイルを使用して予測 (Predict Using Spatial Statistics Model File)] ツールで使用すると、新しいフィーチャの予測を立てることができます。
    • [出力予測フィーチャ] - フィーチャごとのモデルの予測値を含むフィーチャクラス。 このオプションは、[予測タイプ] パラメーター値が [フィーチャに関する予測] である場合にのみ使用できます。
    • [出力予測サーフェス] - 予測結果を含む出力ラスター。 この出力は、[予測タイプ] パラメーター値が [ラスターに関する予測] である場合にのみ使用できます。
    • [出力変数重要度テーブル] - 各説明変数 (フィールド、距離フィーチャ、ラスター) の重要度を説明するテーブル。
    • [出力パラメーター調整テーブル] - それぞれの最適化試行のパラメーター設定と目的値を含むテーブル。 この出力は、[パラメーターの最適化] パラメーターがオンの場合のみ使用できます。
    • [出力分類パフォーマンス テーブル (混同行列)] - 整合チェック データで、モデルのパフォーマンスを集計するテーブル。 行列の列はモデルが予測したカテゴリを表し、行は実際のカテゴリを表します。 検証データでのモデルのパフォーマンスを評価するには、テーブルを使用します。 この出力は、[カテゴリとして処理] パラメーターがオンの場合のみ使用できます。
  • このツールでは、作成されたモデルのパフォーマンスを理解するのに役立つメッセージを作成します。 このメッセージにアクセスするには[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタンをクリックするか、メッセージ セクションを展開します。 ジオプロセシング履歴から、以前に実行したツールのメッセージにアクセスすることもできます。 このメッセージには次の情報が含まれています。

    • モデルの特性に関する情報
    • モデルの Out of Bag エラー
    • トレーニング診断
    • 検証診断
    • 説明変数診断
    • 変数重要度 - [出力変数重要度テーブル] パラメーター値が指定されている場合、最高の重要度を持つ 20 個の変数がジオプロセシング メッセージで報告されます。 [検証の実行回数] パラメーターの値が 1 より大きい場合、変数重要度値のセットが複数存在します。 実行ごとに変数重要度値セットがあるため、ジオプロセシング メッセージは、決定係数または正確度の中央値に最も近い決定係数または正確度を持つ実行に関連する変数重要度のセットを報告します。

  • このツールは、[コンテンツ] ウィンドウに次のオプションのチャートを追加します。

    • [予測パフォーマンス] - モデルのデータへの適合度を評価する積み上げバー チャート。 X 軸のカテゴリは、[入力トレーニング フィーチャ] 値について、モデルが予測したものです。 これには、モデルのトレーニングと整合チェックに使用されたフィーチャも含まれます。 色は、入力トレーニング フィーチャの真のカテゴリを表します。 このチャートは、予測対象変数がカテゴリ変数で、[変数をカテゴリとして処理] チェックボックスがオンで、[出力トレーニング済みフィーチャ] パラメーターが指定されている場合にのみ生成されます。
    • [混同行列] - マトリックス ヒート チャート。 X 軸は [入力トレーニング フィーチャ] 値のフィーチャの予測されたカテゴリを表し、Y 軸は実際のカテゴリを表します。 対角線セルでは、モデルがカテゴリを正しく予測した回数が視覚化されます。 対角線セルの数が多いほど、モデルのパフォーマンスが十分であることを示します。 このチャートは、予測対象変数がカテゴリ変数であり、[変数をカテゴリとして処理] パラメーターがオンの場合にのみ生成されます。
    • [変数の重要性のサマリー] または [変数の重要性の分布] - モデルに対する各説明変数の重要性を示すバー チャート。 [検証の実行回数] 値が 1 より大きい場合、チャートは各説明変数の重要度値の分布を示す箱ひげ図になります。 このチャートは、[出力変数重要度テーブル] パラメーター値を指定した場合に生成されます。
    • [検証パフォーマンス] - 整合チェック データでのモデルのパフォーマンスを評価する積み上げバー チャート。 整合チェック データのフィーチャの実際のカテゴリは、X 軸上にあります。 色は、整合チェック データのフィーチャの予測されたカテゴリを表します。 このチャートは、予測対象変数がカテゴリ変数で、[変数をカテゴリとして処理] チェックボックスがオンで、[出力分類パフォーマンス テーブル (混同行列)] パラメーター値が指定されている場合にのみ生成されます。
    • [Validation R2] または [Validation Accuracy] - R2 または正確度の値を示すヒストグラム。 R2 または正確度の値の分布は、モデル作成時に生じるランダム性に起因します。 このチャートでは、さまざまなモデル実行におけるモデル パフォーマンスの安定性を評価します。 このチャートは、[出力整合チェック テーブル] パラメーター値が指定されており、[整合チェックの実行回数] 値が 1 よりも大きい場合にのみ生成されます。
  • 説明変数は、フィールドから生成するか、距離フィーチャから算出するか、ラスターから抽出することができます。 これらのタイプの説明変数を任意に組み合わせて使用できますが、少なくとも 1 つのタイプが必要です。 使用する説明変数 (発生元がフィールド、距離フィーチャ、またはラスター) には、さまざまな値を含める必要があります。 説明変数がカテゴリの場合は、[カテゴリ] チェックボックスをオンにします。 文字列タイプの変数の場合、[カテゴリ] チェックボックスは自動的にオンになります。 カテゴリ説明変数は 60 の個別値に制限されていますが、カテゴリの数を少なくすると、モデルのパフォーマンスが上がります。 データのサイズによっては、変数に含まれているカテゴリの数が多いと、モデルに大きく影響し、これによって予測結果が意味を持たなくなる可能性が高くなります。

  • 距離フィーチャを使用すると、指定されたフィーチャから [入力トレーニング フィーチャ] 値までの距離を表す説明変数が自動的に作成されます。 [入力トレーニング フィーチャ] 値の各フィーチャから、最近隣の[説明トレーニング距離フィーチャ] 値までの距離が算出されます。 入力された [説明トレーニング距離フィーチャ] 値がポリゴンまたはラインの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。 ただし、ポリゴンとラインの場合、距離は別々に計算されます。 詳細については、「近接解析ツールによる距離の計算方法」をご参照ください。

  • [入力トレーニング フィーチャ] 値がポイントの場合に、[説明トレーニング ラスター] パラメーターを使用すると、このツールはドリル ダウンして、それぞれのポイントのロケーションで説明変数を抽出します。 マルチバンド ラスターの場合は、最初のバンドだけが使用されます。

  • [コンテンツ] ウィンドウでは、同じ名前のレイヤーを複数使用できますが、このツールでは同じ名前の説明距離レイヤーや説明ラスター レイヤーを使用することはできません。 この問題を避けるために、各レイヤーが一意の名前であることを確認するか、ドロップダウン リストで重複するレイヤー名を削除します。

  • [入力トレーニング フィーチャ] 値がポリゴンで、[予測対象変数] パラメーター値がカテゴリで、[説明トレーニング ラスター] 値のみを使用している場合は、[トレーニング用にポリゴンをラスター解像度に変換] パラメーターを使用できます。 このパラメーターをオンにすると、ポリゴンは各ラスター セル (重心がそのポリゴン内にある) の重心でポイントに分割されます。 続いて各ポイントのロケーションのラスター値が抽出され、モデルのトレーニングに使用されます。 数値変数では共一次内挿法、カテゴリ変数では最近隣内挿法が使用されます。 変換されたポリゴンのデフォルトのセル サイズは、入力ラスターの最大セル サイズになります。 ただし、[セル サイズ] 環境設定を使用して、これを変更できます。 このパラメーターをオフにすると、各ポリゴンの 1 つのラスター値がそのモデルで使用されます。 各ポリゴンには、連続ラスターの場合は平均値、カテゴリ ラスターの場合は最頻値が割り当てられています。

    ポリゴンがラスター解像度に変換されるか (左)、ポリゴンに平均値が割り当てられる (右)

  • 指定された説明変数ごとに使用されるデータには変量が存在しなければなりません。 指定されたいずれかのフィールドまたはラスターに変量が存在しないというエラーが通知された場合は、該当する変数をカテゴリにして、このツールをもう一度実行します。 特定の変数で 95 パーセントのフィーチャの値が同じである場合、その変数は変量なしと見なされます。

  • カテゴリ内の変量がバランス調整されていない場合、[スパース カテゴリの補正] パラメーターを使用できます。 たとえば、データセット内で数百回発生するカテゴリと、発生回数が格段に少ないカテゴリがある場合、このパラメーターをオンにすると、それぞれのカテゴリが各ツリーで表され、バランス調整されたモデルが作成されます。 このパラメーターは、[モデル タイプ] パラメーター値が [フォレストベース] である場合のみサポートされます。

  • 説明変数を照合する場合、Prediction フィールドと Training フィールドは必ず同じタイプでなければなりません (Training の double フィールドは Prediction の double フィールドと一致しなければならない)。

  • フォレストベース モデルとブースティング モデルは外挿を行わず、モデルがトレーニングされた値の分類または予測のみ行います。 元のトレーニング データセットの範囲をはるかに上回る/下回る説明変数に基づいて値を予測すると、このモデルでは、元のデータセットの最大値または最小値に近い値が推定されます。 モデルのトレーニングに使用される説明変数の範囲から外れている説明変数で予測しようとすると、このツールのパフォーマンスが低下する場合があります。

  • トレーニング フィーチャに含まれていない予測説明変数にカテゴリが存在する場合は、このツールの実行に失敗します。 同様に、トレーニング フィーチャに含まれていない整合チェック データにカテゴリが存在する場合、このツールの実行は失敗します。

  • モザイク データセットを説明変数として使用するには、まず [モザイク レイヤーの作成 (Make Mosaic Layer)] ツールを実行してレイヤーへの絶対パスをツールにコピーするか、[モザイク レイヤーの作成 (Make Mosaic Layer)] ツールと [ラスター レイヤーの作成 (Make Raster Layer)] ツールを使用してモザイク データセットの処理テンプレートを調整します。

  • [ツリーの数] パラメーターのデフォルト値は 100 です。 フォレストベース モデルの場合、モデル内のツリーの数を増やすと、モデル予測の精度は上がりますが、そのモデルでの計算時間が長くなります。

  • [モデル タイプ] パラメーター値が [フォレストベース] で、[不確実性の計算] パラメーターがオンである場合、ツールは [予測対象変数] 値の各予測値の周りの 90 パーセントの予測間隔を計算します。 [予測タイプ] パラメーター値が [トレーニングのみ] または [フィーチャに関する予測] の場合、2 つのフィールドが [出力トレーニング済みフィーチャ] 値または [出力予測済みフィーチャ] 値に追加されます。 これらのフィールドは、末尾が _P05_P95 になり、予測間隔の上限と下限を表します。 新しい観測の場合、同じ説明変数を指定すると、新しい観測が間隔内に含まれることを 90 パーセントの信頼度で予測できます。 [予測タイプ] パラメーター値が [ラスターに関する予測] である場合、予測間隔の上限と下限を表す 2 つの追加ラスターが [コンテンツ] ウィンドウに追加されます。

  • パフォーマンス上の理由から、[予測タイプ] パラメーターの値が [ラスターに関する予測] である場合は、[説明トレーニング距離フィーチャ] パラメーターを使用できません。 説明変数としてフィーチャへの距離を含めるには、[距離累積 (Distance Accumulation)] ツールを使用して距離ラスターを計算し、[説明トレーニング ラスター] パラメーターに距離ラスターを含めます。

  • このツールは予測の並列処理をサポートしており、デフォルトで利用可能なプロセッサの 50 パーセントを使用します。 プロセッサの数を増減するには、並列処理ファクター環境を使用します。

  • このツールの機能の詳細と出力されるメッセージおよびチャートの意味については、「フォレストベースの分類と回帰 (Forest-based Classification and Regression) の機能」をご参照ください。

    参考文献:

    • Breiman, Leo. Out-Of-Bag Estimation. 1996
    • Breiman, L. (1996). Bagging predictors. Machine learning, 24(2), 123-140.
    • Breiman, Leo. "Random Forests". Machine Learning. 45 (1): 5-32. doi:10.1023/A:1010933404324. 2001.
    • Breiman, L., J.H. Friedman, R.A. Olshen, C.J. Stone. Classification and regression trees. New York: Routledge. Chapter 4. 2017.
    • Chen, T., and Guestrin, C. (2016). "XGBoost: A Scalable Tree Boosting System." In Proceedings of the 22nd ACM SIGKDD Conference on Knowledge Discovery and Data Mining. 785-794.
    • Dietterich, T. G. (2000, June). Ensemble methods in machine learning. In International workshop on multiple classifier systems (pp. 1-15). Springer, Berlin, Heidelberg.
    • Gini, C. (1912). Variabilità e mutabilità. Reprinted in Memorie di metodologica statistica (Ed. Pizetti E, Salvemini, T). Rome: Libreria Eredi Virgilio Veschi.
    • Grömping, U. (2009). Variable importance assessment in regression: linear regression versus random forest. The American Statistician, 63(4), 308-319.
    • Ho, T. K. (1995, August). Random decision forests. In Document analysis and recognition, 1995., proceedings of the third international conference on Document Analysis and Recognition. (Vol. 1, pp. 278-282). IEEE.
    • James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to statistical learning (Vol. 112). New York: springer.
    • LeBlanc, M., & Tibshirani, R. (1996). Combining estimates in regression and classification. Journal of the American Statistical Association, 91(436), 1641-1650.
    • Loh, W. Y., & Shih, Y. S. (1997). Split selection methods for classification trees. Statistica sinica, 815-840.
    • Meinshausen, Nicolai. "Quantile regression forests." Journal of Machine Learning Research 7. Jun (2006): 983-999.
    • Nadeau, C., & Bengio, Y. (2000). Inference for the generalization error. In Advances in neural information processing systems (pp. 307-313).
    • Strobl, C., Boulesteix, A. L., Kneib, T., Augustin, T., & Zeileis, A. (2008). Conditional variable importance for random forests. BMC bioinformatics, 9(1), 307.
    • Zhou, Z. H. (2012). Ensemble methods: foundations and algorithms. CRC press.

パラメーター

ラベル説明データ タイプ
予測タイプ

使用される操作モードを指定します。 このツールでは、パフォーマンスの評価、フィーチャの予測、または予測サーフェスの作成の目的にのみモデルのトレーニングを実行できます。

  • トレーニングのみモデルのトレーニングは行われますが、予測は生成されません。 このオプションを使用すると、予測を生成する前に、モデルの精度を評価できます。 このオプションを使用すると、モデル診断がメッセージ ウィンドウに出力され、変数重要度のチャートが表示されます。 これがデフォルトです。
  • フィーチャに関する予測フィーチャに関する予測または分類が生成されます。 トレーニング フィーチャと予測対象フィーチャの両方に説明変数を指定する必要があります。 このオプションの出力内容は、フィーチャクラス、メッセージ ウィンドウでのモデル診断、変数重要度の任意のテーブルおよびチャートです。
  • ラスターに関する予測説明ラスターが交差するエリアに関して予測ラスターが生成されます。 トレーニング エリアと予測対象エリアの両方の説明ラスターを指定する必要があります。 このオプションの出力内容は、予測サーフェス、メッセージ ウィンドウでのモデル診断、変数重要度の任意のテーブルおよびチャートです。
String
入力トレーニング フィーチャ

[予測対象変数] パラメーター値と (オプションで) フィールドから生成された説明トレーニング変数を含むフィーチャクラス。

Feature Layer
予測対象変数
(オプション)

モデルのトレーニングに使用される値を含む [入力トレーニング フィーチャ] パラメーター値から生成された変数。 このフィールドには、不明なロケーションでの予測に使用される変数の既知 (トレーニング) の値が含まれます。

Field
変数をカテゴリとして処理
(オプション)

[予測対象変数] 値をカテゴリ変数にするかどうかを指定します。

  • オン - [予測対象変数] 値がカテゴリ変数になり、分類が実行されます。
  • オフ - [予測対象変数] 値が連続変数になり、回帰が実行されます。 これがデフォルトです。
Boolean
説明トレーニング変数
(オプション)

[予測対象変数] の値またはカテゴリの予測に役立つ説明変数を表すフィールドのリスト。 クラスまたはカテゴリを表す変数 (土地被覆や有無など) の場合に [カテゴリ] チェックボックスをオンにします。

Value Table
説明トレーニング距離フィーチャ
(オプション)

説明トレーニング距離フィーチャを含むフィーチャ レイヤー。 指定されたフィーチャから [入力トレーニング フィーチャ] 値までの距離が算出され、説明変数が自動的に作成されます。 [入力トレーニング フィーチャ] 値の各フィーチャから最近隣の [説明トレーニング距離フィーチャ] 値までの距離が算出されます。 入力された [説明トレーニング距離フィーチャ] 値がポリゴンまたはラインの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。

Feature Layer
説明トレーニング ラスター
(オプション)

ラスターから抽出された説明トレーニング変数。 ラスター セル値が抽出され、説明トレーニング変数が自動的に作成されます。 [入力トレーニング フィーチャ] パラメーターのフィーチャごとに、該当するロケーションでラスター セルの値が抽出されます。 連続ラスターからラスター値を抽出する場合には、共一次内挿法によるラスターのリサンプリングが使用されます。 カテゴリ ラスターからラスター値を抽出する場合には、最近隣内挿法による近接割り当てが使用されます。 クラスまたはカテゴリを表すラスター (土地被覆や有無など) の場合に [カテゴリ] チェックボックスをオンにします。

Value Table
入力予測フィーチャ
(オプション)

予測が行われるロケーションを表すフィーチャクラス。 このフィーチャクラスには、トレーニング データから使用されるフィールドに対応するフィールドとして指定された説明変数も含める必要があります。

Feature Layer
出力予測済みフィーチャ
(オプション)

予測結果を含む出力フィーチャクラス。

Feature Class
出力予測サーフェス
(オプション)

予測結果を含む出力ラスター。 デフォルトのセル サイズは、入力ラスターの最大セル サイズになります。 別のセル サイズを設定するには、[セル サイズ] 環境設定を使用します。

Raster Dataset
説明変数の照合
(オプション)

右側の [入力トレーニング フィーチャ] パラメーターに対して指定された [説明変数] 値と左側の [入力予測フィーチャ] パラメーターの対応するフィールドのリスト。

Value Table
距離フィーチャの照合
(オプション)

右側の [入力トレーニング フィーチャ] パラメーターに対して指定された [説明距離フィーチャ] 値と左側の [入力予測フィーチャ] パラメーターの対応するフィーチャ セットのリスト。

[入力予測フィーチャ] パラメーターに最適な [説明距離フィーチャ] 値は、これらが異なる分析範囲または期間内にトレーニングに使用されている場合に指定できます。

Value Table
説明ラスターの照合
(オプション)

右側の [入力トレーニング フィーチャ] パラメーターに対して指定された [説明ラスター] 値と、左側の作成対象の [入力予測フィーチャ] パラメーターまたは [予測サーフェス] パラメーターの対応するラスターのリスト。

[入力予測フィーチャ] パラメーターに最適な [説明ラスター] 値は、これらが異なる分析範囲または期間内にトレーニングに使用されている場合に指定できます。

Value Table
出力トレーニング済みフィーチャ
(オプション)

トレーニングに使用されている説明変数 (サンプリングされたラスター値と距離計算を含む)、および観測された [予測対象変数] フィールドとそれに伴う予測 (トレーニング済みのモデルのパフォーマンスを詳しく評価する際に使用)。

Feature Class
出力変数重要度テーブル
(オプション)

モデルで使用されている説明変数ごとの重要度を示す情報を含むテーブル。 説明変数には、モデルの作成に使用されるフィールド、距離フィーチャ、ラスターが含まれます。

[モデル タイプ] パラメーター値が [勾配ブースティング] の場合は、重要度はゲイン、加重、カバーによって計測され、テーブルにはこれらのフィールドが含まれます。 [整合チェックの実行回数] パラメーター値が 1 の場合、出力にはバー チャートが含まれます。値が 1 よりも大きい場合は、説明変数の重要度を表す箱ひげ図が含まれます。

Table
トレーニング用にポリゴンをラスター解像度に変換
(オプション)

[入力トレーニング フィーチャ] 値が [予測対象変数] カテゴリ値のポリゴンであり、[説明トレーニング ラスター] 値だけが指定されている場合のモデルのトレーニング時のポリゴンの処理方法を示します。

  • オン - ポリゴンは、重心がそのポリゴン内にあるすべてのラスター セルに分割されます。 それぞれの重心でラスター値が抽出され、モデルのトレーニングに使用されます。 モデルは、ポリゴンではなく、各セルの中心点について抽出されたラスター値でトレーニングされるようになります。 これがデフォルトです。

    ラスター セルに分割されたポリゴン

  • オフ - ポリゴンごとに、基になる連続ラスターの平均値と基になるカテゴリ ラスターの最頻値が割り当てられます。

    平均または最頻値として割り当てられたポリゴンの値

Boolean
ツリーの数
(オプション)

フォレストベース モデルと勾配ブースティング モデルで作成されたツリーの数。 デフォルトは 100 です。

[モデル タイプ] パラメーター値が [フォレストベース] である場合、ツリーの数を多くするとモデル予測の精度が上がりますが、モデルの計算時間が長くなります。 [モデル タイプ] パラメーター値が [勾配ブースティング] である場合、ツリーの数を多くするとモデル予測の精度が上がりますが、トレーニング データの過剰適合の原因になることがあります。 データの過剰適合を防ぐには、[最大ツリー階層][L2 正規化 (ラムダ)][分割の最小損失減少 (ガンマ)][学習率 (イータ)] パラメーターの値を指定します。

Long
最小リーフ サイズ
(オプション)

リーフを維持するために最低限必要な観測数 (つまり、これ以上分割できないツリー上のターミナル ノード)。 デフォルトの最小数は、回帰の場合には 5、分類の場合には 1 になります。 大規模なデータの場合は、これらの数を増やすと、このツールの実行時間が短くなります。

Long
最大ツリー階層
(オプション)

ツリーの下に作成される分割の最大数。 最大ツリー階層の値を大きくすると、さらに多くの分割が作成されるため、モデルの過剰適合の可能性が高くなります。 [モデル タイプ] パラメーター値が [フォレストベース] である場合、デフォルト値はデータ ドリブンであり、作成されるツリー数と含まれる変数の数によって異なります。 [モデル タイプ] パラメーター値が [勾配ブースティング] の場合、デフォルトは 6 です。

Long
ツリーあたりの利用可能なデータ (%)
(オプション)

決定木ごとに使用される [入力トレーニング フィーチャ] 値の割合。 デフォルトはデータの 100% です。 各ツリーのサンプルは、指定されたデータの 3 分の 2 の中からランダムに取得されます。

集合内の各決定木の作成には、ランダムなサンプルが使用されるか、利用可能なトレーニング データのサブセット (約 3 分の 2) が使用されます。 各決定木の入力データの割合を低くすると、大規模なデータセットの場合のこのツールの実行時間が短くなります。

Long
ランダムにサンプリングされる変数の数
(オプション)

各決定木の作成に使用される説明変数の数。

フォレストベース モデルと勾配ブースティング モデルの各決定木は、指定された説明変数のランダムなサブセットを使用して作成されます。 各決定木で使用される変数の数を増やすと、特に 1 つ以上のドミナント変数が存在する場合に、モデルの超過適合の可能性が高くなります。 デフォルトでは、[予測対象変数] 値がカテゴリの場合は説明変数の総数 (フィールド、距離、ラスターの合計) の平方根を使用し、[予測対象変数] 値が数値の場合は、説明変数の総数 (フィールド、距離、ラスターの合計) を 3 で除算します。

Long
検証のために除外するトレーニング データ (%)
(オプション)

検証のためにテスト データセットとして確保される [入力トレーニング フィーチャ] 値の割合 (10 ~ 50 パーセント)。 ここで指定したデータのランダムなサブセットなしでモデルのトレーニングが行われ、これらのフィーチャのモデル予測値が観測値と比較されます。 デフォルトは 10 パーセントです。

Double
出力分類パフォーマンス テーブル (混同行列)
(オプション)

整合チェック データで作成されたモデルのパフォーマンスを集計する混同行列。 この行列では、整合チェック データに対してモデルが予測したカテゴリを、実際のカテゴリと比較します。 このテーブルは、出力メッセージに含まれていない、他の診断を計算するために使用されます。 このパラメーターは、[予測対象変数] 値がカテゴリで、[カテゴリとして処理] パラメーターがオンの場合に使用できます。

Table
出力整合チェック テーブル
(オプション)

[予測対象変数] 値がカテゴリではない場合には各モデルの R2、値がカテゴリの場合は各モデルの正確度が含まれるテーブル。 このテーブルには、正確度または R2 値の分布を示すバー チャートが含まれます。 この分布を使用して、モデルの安定性を評価できます。 このパラメーターは、[検証の実行回数] 値が 2 よりも大きい場合に使用できます。

Table
スパース カテゴリの補正
(オプション)

頻度にかかわらず、トレーニング データセット内の各カテゴリを各ツリーで表すかどうかを指定します。 このパラメーターは、[モデル タイプ] パラメーター値が [フォレストベース] である場合に使用できます。

  • オン - 各ツリーは、トレーニング データセット内に表されるすべてのカテゴリを含みます。
  • オフ - トレーニング データセット内のカテゴリのランダムなサンプルに基づいて、各ツリーが作成されます。 これがデフォルトです。

Boolean
整合チェックの実行回数
(オプション)

ツールの反復回数。

すべてのモデルの R2 値の分布や正確度は、[出力整合チェック テーブル] パラメーターを使用して表示できます。 [予測タイプ] パラメーター値が [ラスターに関する予測] または [フィーチャに関する予測] である場合、最大の R2 値または正確度を生成したモデルが予測を立てるために使用されます。

Long
不確実性の計算
(オプション)

トレーニング、フィーチャの予測、またはラスターの予測の際に、予測の不確実性を計算するかどうかを指定します。

このパラメーターは、[モデル タイプ] パラメーター値が [フォレストベース] である場合に使用できます。

  • オン - 予測の不確実性間隔が計算されます。
  • オフ - 不確実性は計算されません。 これがデフォルトです。
Boolean
出力トレーニング済みモデル ファイル
(オプション)

後から予測に使用できるトレーニング済みモデルが保存される出力モデル ファイル。

File
モデル タイプ
(オプション)

モデルの作成に使用する方法を指定します。

  • フォレストベースモデルは、ランダム フォレスト アルゴリズムを転用して作成されます。 このモデルでは、数百もの決定木から得た結果を使用します。 それぞれの決定木は、元のデータと元の変数のランダムに生成されたサブセットから作成されます。
  • 勾配ブースティングモデルは、Extreme Gradient Boosting (XGBoost) アルゴリズムを用いて作成されます。 このモデルでは、後続の各ツリーが前のツリーの誤差を修正する、何百にも上るツリーのシーケンスが作成されます。
String
L2 正規化 (ラムダ)
(オプション)

モデルの感度を個々のフィーチャまで下げる正規化手法。 この値を大きくすると、モデルがより保守的になるため、トレーニング データの過剰適合を防止することができます。 値が 0 の場合は、モデルは従来の勾配ブースティング モデルになります。 デフォルトは 1 です。

このパラメーターは、[モデル タイプ] パラメーター値が [勾配ブースティング] である場合に使用できます。

Double
分割の最小損失減少 (ガンマ)
(オプション)

ツリーの分割に必要な最小損失削減の閾値。

潜在的な分割の損失削減を評価します。 分割候補の損失削減がこの閾値よりも大きい場合は、パーティション化が行われます。 高い閾値を設定すると過剰適合を防止でき、パーティション数が少ない、より保守的なモデルになります。 デフォルトは 0 です。

このパラメーターは、[モデル タイプ] パラメーター値が [勾配ブースティング] である場合に使用できます。

Double
学習率 (イータ)
(オプション)

最終的な予測への各ツリーの関与を少なくする値。 0 より大きく、1 以下の値を設定する必要があります。 学習率を小さくすると、モデルの過剰適合は防止できますが、計算時間が長くなる可能性があります。 デフォルトは 0.3 です。

このパラメーターは、[モデル タイプ] パラメーター値が [勾配ブースティング] である場合に使用できます。

Double
分割を検索するビンの最大数
(オプション)

最適な分割ポイントを検索するために、トレーニング データを分割するビンの数。 この値は 1 に設定できません。 デフォルトは 0 で、グリーディ アルゴリズムが使用されます。 グリーディ アルゴリズムでは、すべてのデータ ポイントで分割候補が作成されます。 検索用のビン数が少なすぎると、モデル予測パフォーマンスが低下するため、お勧めできません。

このパラメーターは、[モデル タイプ] パラメーター値が [勾配ブースティング] である場合に使用できます。

Long
パラメーターの最適化
(オプション)

最適化方法を使用して、最適なモデル パフォーマンスを実現するハイパーパラメーター セットを見つけるかどうかを指定します。

  • オン - 最適化方法を使用して、ハイパーパラメーター セットを見つけます。
  • オフ - 最適化方法は使用されません。 これがデフォルトです。

Boolean
最適化方法
(オプション)

最適なハイパーパラメーター セットを見つけるための検索ポイントを選択し、テストするために使用される最適化方法を指定します。 検索ポイントは、[モデル パラメーター設定] パラメーターで指定された検索空間内の、ハイパーパラメーターの組み合わせです。 このオプションは、[最適化パラメーター] パラメーターがオンの場合に使用できます。

  • ランダム サーチ (クイック)検索空間内で検索ポイントを選択するには、階層別ランダム サンプリング アルゴリズムが使用されます。 これがデフォルトです。
  • ランダム サーチ (ロバスト)検索ポイントを選択するには、階層別ランダム サンプリング アルゴリズムが使用されます。 各検索は、異なるランダム シードを使用して 10 回実行されます。 各検索の結果は、[ターゲットの最適化 (目的)] パラメーター値によって決定された、中央値の最適な実行になります。 このオプションは、[モデル タイプ] パラメーター値が [フォレストベース] である場合に使用できます。
  • グリッド サーチ検索空間内の各検索ポイントが選択されます。
String
ターゲットの最適化 (目的)
(オプション)

最適なハイパーパラメーター セットを見つけるために、最小化または最大化される目的関数や値を指定します。

  • R2最適化方法は R2 を最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリではない場合にのみ使用できます。 これは、予測対象変数がカテゴリではない場合のデフォルトです。
  • 二乗平均平方根誤差 (RMSE)最適化方法は二乗平均平方根誤差を最小化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリではない場合にのみ使用できます。
  • 正確度最適化方法は正確度を最大化し、最適なモデルを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。 これは、予測対象変数がカテゴリである場合のデフォルトです。
  • マシューズ相関係数 (MCC)最適化方法はマシューズ相関係数を最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。
  • F1 スコア最適化方法は F1 スコアを最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。
String
パラメーター セットの実行回数
(オプション)

[モデル パラメーター設定] パラメーターで指定される検索空間内でテストされる検索ポイントの数。 このパラメーターは、[最適化方法] 値が [ランダム サーチ (クイック)] または [ランダム サーチ (ロバスト)] である場合に使用できます。

Long
モデル パラメーター設定
(オプション)

ハイパーパラメーターとその検索空間のリスト。 各ハイパーパラメーターの検索空間をカスタマイズするには、下限、上限、間隔を指定します。 下限と上限は、ハイパーパラメーターで使用可能な値の範囲を指定します。

各ハイパーパラメーターで有効な値の範囲は以下のとおりです。

  • [ツリー数] (number_of_trees) - 1 より大きい整数値。
  • [最大ツリー階層] (maximum_depth) - 0 以上の整数値。
  • [最小リーフ サイズ] (minimum_leaf_size) - 1 より大きい整数値。
  • [ツリーあたりの利用可能なデータ (%)] (sample_size) - 0 より大きく、100 以下の整数値。
  • [ランダムにサンプリングされた変数の数] (random_variables) - 説明変数の数以下の整数値。 これには、フィールド、距離フィーチャ、ラスターから取得した説明変数が含まれます。
  • [学習率 (イータ)] (eta) - 0 より大きく、1 以下の倍精度値。
  • [L2 正規化 (ラムダ)] (reg_lambda) - 0 以上の倍精度値。
  • [分割の最小損失減少 (ガンマ)] (gamma) - 0 以上の倍精度値。
  • [分割を検索するビンの最大数] (max_bins) - 1 より大きい整数値か 0。 値が 0 の場合は、モデルはすべてのデータ ポイントで分割候補を作成します。

Value Table
出力パラメーター調整テーブル
(オプション)

パラメーター設定と、最適化試行の目的値を含むテーブル。 出力には、すべての試行とその目的値のチャートが含まれます。 このオプションは、[パラメーターの最適化] がオンの場合に使用できます。

Table

派生した出力

ラベル説明データ タイプ
出力不確実性ラスター レイヤー

[不確実性の計算] パラメーターがオンの場合、ツールは [予測対象変数] パラメーターの予測値の周辺で 90 パーセントの予測間隔を計算します。

Raster Layer

arcpy.stats.Forest(prediction_type, in_features, {variable_predict}, {treat_variable_as_categorical}, {explanatory_variables}, {distance_features}, {explanatory_rasters}, {features_to_predict}, {output_features}, {output_raster}, {explanatory_variable_matching}, {explanatory_distance_matching}, {explanatory_rasters_matching}, {output_trained_features}, {output_importance_table}, {use_raster_values}, {number_of_trees}, {minimum_leaf_size}, {maximum_depth}, {sample_size}, {random_variables}, {percentage_for_training}, {output_classification_table}, {output_validation_table}, {compensate_sparse_categories}, {number_validation_runs}, {calculate_uncertainty}, {output_trained_model}, {model_type}, {reg_lambda}, {gamma}, {eta}, {max_bins}, {optimize}, {optimize_algorithm}, {optimize_target}, {num_search}, {model_param_setting}, {output_param_tuning_table})
名前説明データ タイプ
prediction_type

使用される操作モードを指定します。 このツールでは、パフォーマンスの評価、フィーチャの予測、または予測サーフェスの作成の目的にのみモデルのトレーニングを実行できます。

  • TRAINモデルのトレーニングは行われますが、予測は生成されません。 このオプションを使用すると、予測を生成する前に、モデルの精度を評価できます。 このオプションを使用すると、モデル診断がメッセージ ウィンドウに出力され、変数重要度のチャートが表示されます。 これがデフォルトです。
  • PREDICT_FEATURESフィーチャに関する予測または分類が生成されます。 トレーニング フィーチャと予測対象フィーチャの両方に説明変数を指定する必要があります。 このオプションの出力内容は、フィーチャクラス、メッセージ ウィンドウでのモデル診断、変数重要度の任意のテーブルおよびチャートです。
  • PREDICT_RASTER説明ラスターが交差するエリアに関して予測ラスターが生成されます。 トレーニング エリアと予測対象エリアの両方の説明ラスターを指定する必要があります。 このオプションの出力内容は、予測サーフェス、メッセージ ウィンドウでのモデル診断、変数重要度の任意のテーブルおよびチャートです。
String
in_features

variable_predict パラメーター値と (オプションで) フィールドから生成された説明トレーニング変数を含むフィーチャクラス。

Feature Layer
variable_predict
(オプション)

モデルのトレーニングに使用される値を含む in_features パラメーター値から生成された変数。 このフィールドには、不明なロケーションでの予測に使用される変数の既知 (トレーニング) の値が含まれます。

Field
treat_variable_as_categorical
(オプション)
  • CATEGORICALvariable_predict 値がカテゴリ変数になり、分類が実行されます。
  • NUMERICvariable_predict 値が連続変数になり、回帰が実行されます。 これがデフォルトです。
Boolean
explanatory_variables
[[Variable, Categorical],...]
(オプション)

variable_predict の値またはカテゴリの予測に役立つ説明変数を表すフィールドのリスト。 クラスまたはカテゴリを表す変数 (土地被覆や有無など) の場合に treat_variable_as_categorical パラメーターを使用します。 クラスまたはカテゴリを表す変数 (土地被覆や有無など) の場合は CATEGORICAL に設定し、連続変数の場合は NUMERIC に設定します。

Value Table
distance_features
[distance_features,...]
(オプション)

説明トレーニング距離フィーチャ。 指定されたフィーチャから in_features 値までの距離が算出され、説明変数が自動的に作成されます。 in_features 値の各フィーチャから最近隣の distance_features 値までの距離が算出されます。 入力された distance_features 値がポリゴンまたはラインの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。

Feature Layer
explanatory_rasters
[[Variable, Categorical],...]
(オプション)

ラスターから抽出された説明トレーニング変数。 ラスター セル値が抽出され、説明トレーニング変数が自動的に作成されます。 in_features パラメーターのフィーチャごとに、該当するロケーションでラスター セルの値が抽出されます。 ラスター値を抽出する場合は、共一次内挿法によるラスターのリサンプリングが使用されます。ただし、カテゴリとして指定されている場合を除きます。この場合には、最近隣内挿法による近接割り当てが使用されます。 クラスまたはカテゴリを表すラスター (土地被覆や有無など) の場合は CATEGORICAL に設定し、連続変数の場合は NUMERIC に設定します。

Value Table
features_to_predict
(オプション)

予測が行われるロケーションを表すフィーチャクラス。 このフィーチャクラスには、トレーニング データから使用されるフィールドに対応するフィールドとして指定された説明変数も含める必要があります。

Feature Layer
output_features
(オプション)

予測結果を含む出力フィーチャクラス。

Feature Class
output_raster
(オプション)

予測結果を含む出力ラスター。 デフォルトのセル サイズは、入力ラスターの最大セル サイズになります。 別のセル サイズを設定するには、[セル サイズ] 環境設定を使用します。

Raster Dataset
explanatory_variable_matching
[[Prediction, Training],...]
(オプション)

右側の in_features パラメーターに対して指定された explanatory_variables 値と左側の features_to_predict パラメーターの対応するフィールドのリスト (例: [["LandCover2000", "LandCover2010"], ["Income", "PerCapitaIncome"]])。

Value Table
explanatory_distance_matching
[[Prediction, Training],...]
(オプション)

右側の in_features パラメーターに対して指定された distance_features 値と左側の features_to_predict パラメーターの対応するフィーチャ セットのリスト。

features_to_predict パラメーターに最適な explanatory_distance_features 値は、これらが異なる分析範囲または期間内にトレーニングに使用されている場合に指定できます。

Value Table
explanatory_rasters_matching
[[Prediction, Training],...]
(オプション)

右側の in_features に対して指定された explanatory_rasters 値と、左側の作成対象の features_to_predict パラメーターまたは output_raster パラメーターの対応するラスターのリスト。

features_to_predict パラメーターに最適な explanatory_rasters 値は、これらが異なる分析範囲または期間内にトレーニングに使用されている場合に指定できます。

Value Table
output_trained_features
(オプション)

トレーニングに使用されている説明変数 (サンプリングされたラスター値と距離計算を含む)、および観測された variable_predict フィールドとそれに伴う予測 (トレーニング済みのモデルのパフォーマンスを詳しく評価する際に使用)。

Feature Class
output_importance_table
(オプション)

モデルを作成するために使用されている説明変数 (フィールド、距離フィーチャ、およびラスター) ごとの重要度を示す情報を含むテーブル。

Table
use_raster_values
(オプション)

in_features 値が variable_predict カテゴリ値のポリゴンであり、explanatory_rasters 値だけが指定されている場合のモデルのトレーニング時のポリゴンの処理方法を示します。

  • TRUEポリゴンは、重心がそのポリゴン内にあるすべてのラスター セルに分割されます。 それぞれの重心でラスター値が抽出され、モデルのトレーニングに使用されます。 モデルは、ポリゴンではなく、各セルの重心について抽出されたラスター値でトレーニングされるようになります。 これがデフォルトです。
  • FALSEポリゴンごとに、基になる連続ラスターの平均値と基になるカテゴリ ラスターの最頻値が割り当てられます。
Boolean
number_of_trees
(オプション)

フォレストベース モデルと勾配ブースティング モデルで作成されたツリーの数。 デフォルトは 100 です。

model_type パラメーター値が FOREST-BASED である場合、ツリーの数を多くするとモデル予測の精度が上がりますが、モデルの計算時間が長くなります。 model_type パラメーター値が GRADIENT_BOOSTED である場合、ツリーの数を多くするとモデル予測の精度が上がりますが、トレーニング データの過剰適合の原因になることがあります。 データの過剰適合を防ぐには、maximum_depthreg_lambdagammaeta パラメーターの値を指定します。

Long
minimum_leaf_size
(オプション)

リーフを維持するために最低限必要な観測数 (つまり、これ以上分割できないツリー上のターミナル ノード)。 デフォルトの最小数は、回帰の場合には 5、分類の場合には 1 になります。 大規模なデータの場合は、これらの数を増やすと、このツールの実行時間が短くなります。

Long
maximum_depth
(オプション)

ツリーの下に作成される分割の最大数。 最大ツリー階層の値を大きくすると、さらに多くの分割が作成されるため、モデルの過剰適合の可能性が高くなります。 model_type パラメーター値が FOREST-BASED の場合、デフォルト値はデータ ドリブンであり、作成されるツリー数と含まれる変数の数によって異なります。 model_type パラメーター値が GRADIENT_BOOSTED の場合、デフォルトは 6 です。

Long
sample_size
(オプション)

決定木ごとに使用される in_features 値の割合。 デフォルトはデータの 100% です。 各ツリーのサンプルは、指定されたデータの 3 分の 2 の中からランダムに取得されます。

集合内の各決定木の作成には、ランダムなサンプルが使用されるか、利用可能なトレーニング データのサブセット (約 3 分の 2) が使用されます。 各決定木の入力データの割合を低くすると、大規模なデータセットの場合のこのツールの実行時間が短くなります。

Long
random_variables
(オプション)

各決定木の作成に使用される説明変数の数。

フォレストの各決定木は、指定された説明変数のランダムなサブセットを使用して作成されます。 各決定木で使用される変数の数を増やすと、特に 1 つ以上のドミナント変数が存在する場合に、モデルの超過適合の可能性が高くなります。 一般的な方法として、variable_predict 値がカテゴリの場合は、説明変数の総数 (フィールド、距離、およびラスターの合計) の平方根を使用し、variable_predict 値が数値の場合は、説明変数の総数 (フィールド、距離、およびラスターの合計) を 3 で除算します。

Long
percentage_for_training
(オプション)

検証のためにテスト データセットとして確保される in_features 値の割合 (10 ~ 50 パーセント)。 ここで指定したデータのランダムなサブセットなしでモデルのトレーニングが行われ、これらのフィーチャの観測値が予測値と比較されます。 デフォルトは 10 パーセントです。

Double
output_classification_table
(オプション)

整合チェック データで作成されたモデルのパフォーマンスを集計する混同行列。 この行列では、整合チェック データに対してモデルが予測したカテゴリを、実際のカテゴリと比較します。 このテーブルは、出力メッセージに含まれていない、他の診断を計算するために使用されます。 このパラメーターは、variable_predict 値がカテゴリで、treat_variable_as_categorical パラメーター値が CATEGORICAL の場合に使用できます。

Table
output_validation_table
(オプション)

variable_predict 値がカテゴリではない場合には各モデルの R2、値がカテゴリの場合は各モデルの正確度が含まれるテーブル。 このテーブルには、正確度または R2 値の分布を示すバー チャートが含まれます。 この分布を使用して、モデルの安定性を評価できます。 このパラメーターは、number_validation_runs 値が 2 よりも大きい場合に使用できます。

Table
compensate_sparse_categories
(オプション)

頻度にかかわらず、トレーニング データセット内の各カテゴリを各ツリーで表すかどうかを指定します。 このパラメーターは、model_type パラメーター値が FOREST-BASED である場合に使用できます。

  • TRUE各ツリーは、トレーニング データセット内で表されるすべてのカテゴリを含みます。
  • FALSEトレーニング データセット内のカテゴリのランダムなサンプルに基づいて、各ツリーが作成されます。 これがデフォルトです。
Boolean
number_validation_runs
(オプション)

ツールの反復回数。

すべてのモデルの R2 値の分布や正確度は、output_validation_table パラメーターを使用して表示できます。 prediction_type パラメーター値が PREDICT_RASTER または PREDICT_FEATURES である場合、最大の R2 値または正確度を生成したモデルが予測を立てるために使用されます。

Long
calculate_uncertainty
(オプション)

トレーニング、フィーチャの予測、またはラスターの予測の際に、予測の不確実性を計算するかどうかを指定します。

このパラメーターは、model_type パラメーター値が FOREST-BASED である場合に使用できます。

  • TRUE予測の不確実性間隔が計算されます。
  • FALSE不確実性は計算されません。 これがデフォルトです。
Boolean
output_trained_model
(オプション)

後から予測に使用できるトレーニング済みモデルが保存される出力モデル ファイル。

File
model_type
(オプション)

モデルの作成に使用する方法を指定します。

  • FOREST-BASEDモデルは、ランダム フォレスト アルゴリズムを転用して作成されます。 このモデルでは、数百もの決定木から得た結果を使用します。 それぞれの決定木は、元のデータと元の変数のランダムに生成されたサブセットから作成されます。
  • GRADIENT_BOOSTEDモデルは、Extreme Gradient Boosting (XGBoost) アルゴリズムを用いて作成されます。 このモデルでは、後続の各ツリーが前のツリーの誤差を修正する、何百にも上るツリーのシーケンスが作成されます。
String
reg_lambda
(オプション)

モデルの感度を個々のフィーチャまで下げる正規化手法。 この値を大きくすると、モデルがより保守的になるため、トレーニング データの過剰適合を防止することができます。 値が 0 の場合は、モデルは従来の勾配ブースティング モデルになります。 デフォルトは 1 です。

このパラメーターは、model_type パラメーター値が GRADIENT_BOOSTED である場合に使用できます。

Double
gamma
(オプション)

ツリーの分割に必要な最小損失削減の閾値。

潜在的な分割の損失削減を評価します。 分割候補の損失削減がこの閾値よりも大きい場合は、パーティション化が行われます。 高い閾値を設定すると過剰適合を防止でき、パーティション数が少ない、より保守的なモデルになります。 デフォルトは 0 です。

このパラメーターは、model_type パラメーター値が GRADIENT_BOOSTED である場合に使用できます。

Double
eta
(オプション)

最終的な予測への各ツリーの関与を少なくする値。 0 より大きく、1 以下の値を設定する必要があります。 学習率を小さくすると、モデルの過剰適合は防止できますが、計算時間が長くなる可能性があります。 デフォルトは 0.3 です。

このパラメーターは、model_type パラメーター値が GRADIENT_BOOSTED である場合に使用できます。

Double
max_bins
(オプション)

最適な分割ポイントを検索するために、トレーニング データを分割するビンの数。 この値は 1 に設定できません。 デフォルトは 0 で、グリーディ アルゴリズムが使用されます。 グリーディ アルゴリズムでは、すべてのデータ ポイントで分割候補が作成されます。 検索用のビン数が少なすぎると、モデル予測パフォーマンスが低下するため、お勧めできません。

このパラメーターは、model_type パラメーター値が GRADIENT_BOOSTED である場合に使用できます。

Long
optimize
(オプション)

最適化方法を使用して、最適なモデル パフォーマンスを実現するハイパーパラメーター セットを見つけるかどうかを指定します。

  • TRUE最適化方法を使用して、ハイパーパラメーター セットを見つけます。
  • FALSE最適化方法は使用されません。 これがデフォルトです。
Boolean
optimize_algorithm
(オプション)

最適なハイパーパラメーター セットを見つけるための検索ポイントを選択し、テストするために使用される最適化方法を指定します。 検索ポイントは、model_param_setting パラメーターで指定された検索空間内の、ハイパーパラメーターの組み合わせです。 このオプションは、optimize パラメーター値が TRUE である場合に使用できます。

  • RANDOM検索空間内で検索ポイントを選択するには、階層別ランダム サンプリング アルゴリズムが使用されます。 これがデフォルトです。
  • RANDOM_ROBUST検索ポイントを選択するには、階層別ランダム サンプリング アルゴリズムが使用されます。 各検索は、異なるランダム シードを使用して 10 回実行されます。 各検索の結果は、optimize_target パラメーター値によって決定された、中央値の最適な実行になります。 このオプションは、model_type パラメーター値が FOREST-BASED である場合に使用できます。
  • GRID検索空間内の各検索ポイントが選択されます。
String
optimize_target
(オプション)

最適なハイパーパラメーター セットを見つけるために、最小化または最大化される目的関数や値を指定します。

  • R2最適化方法は R2 を最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリではない場合にのみ使用できます。 これは、予測対象変数がカテゴリではない場合のデフォルトです。
  • RMSE最適化方法は二乗平均平方根誤差を最小化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリではない場合にのみ使用できます。
  • ACCURACY最適化方法は正確度を最大化し、最適なモデルを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。 これは、予測対象変数がカテゴリである場合のデフォルトです。
  • MCC最適化方法はマシューズ相関係数を最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。
  • F1-SCORE最適化方法は F1 スコアを最大化し、最適なハイパーパラメーター セットを見つけます。 このオプションは、予測対象変数がカテゴリである場合にのみ使用できます。
String
num_search
(オプション)

model_param_setting パラメーターで指定される検索空間内でテストされる検索ポイントの数。 このパラメーターは、optimize_algorithm パラメーター値が RANDOM または RANDOM_ROBUST である場合に使用できます。

Long
model_param_setting
[model_param_setting,...]
(オプション)

ハイパーパラメーターとその検索空間のリスト。 各ハイパーパラメーターの検索空間をカスタマイズするには、下限、上限、間隔を指定します。 下限と上限は、ハイパーパラメーターで使用可能な値の範囲を指定します。

各ハイパーパラメーターで有効な値の範囲は以下のとおりです。

  • [ツリー数] (number_of_trees) - 1 より大きい整数値。
  • [最大ツリー階層] (maximum_depth) - 0 以上の整数値。
  • [最小リーフ サイズ] (minimum_leaf_size) - 1 より大きい整数値。
  • [ツリーあたりの利用可能なデータ (%)] (sample_size) - 0 より大きく、100 以下の整数値。
  • [ランダムにサンプリングされた変数の数] (random_variables) - 説明変数の数以下の整数値。 これには、フィールド、距離フィーチャ、ラスターから取得した説明変数が含まれます。
  • [学習率 (イータ)] (eta) - 0 より大きく、1 以下の倍精度値。
  • [L2 正規化 (ラムダ)] (reg_lambda) - 0 以上の倍精度値。
  • [分割の最小損失減少 (ガンマ)] (gamma) - 0 以上の倍精度値。
  • [分割を検索するビンの最大数] (max_bins) - 1 より大きい整数値か 0。 値が 0 の場合は、モデルはすべてのデータ ポイントで分割候補を作成します。

Value Table
output_param_tuning_table
(オプション)

パラメーター設定と、最適化試行の目的値を含むテーブル。 出力には、すべての試行とその目的値のチャートが含まれます。 このオプションは、optimizeTRUE の場合に使用できます。

Table

派生した出力

名前説明データ タイプ
output_uncertainty_raster_layers

calculate_uncertaintyTRUE に設定されている場合、ツールは variable_predict パラメーターの各予測値の周辺で 90 パーセントの予測間隔を計算します。

Raster Layer

コードのサンプル

Forest の例 1 (Python ウィンドウ)

次の Python スクリプトは、Forest 関数の使用方法を示しています。

import arcpy
arcpy.env.workspace = r"c:\data"

# Forest-based model using only the training method and all data
# comes from a single polygon feature class. The tool excludes 10% of the 
# input features from training and uses these values to validate the model.

prediction_type = "TRAIN"
in_features = r"Boston_Vandalism.shp"
variable_predict = "VandCnt"
explanatory_variables = [["Educat", "false"], ["MedAge", "false"], 
    ["HHInc", "false"], ["Pop", "false"]]
output_trained_features = "TrainingFeatures.shp"
number_of_trees = 100
sample_size = 100
percentage_for_training = 10

arcpy.stats.Forest(prediction_type, in_features, variable_predict, None,
    explanatory_variables, None, None, None, None, None, None, None, None,
    output_trained_features, None, True, number_of_trees, None, None, sample_size, 
    None, percentage_for_training)
Forest の例 2 (スタンドアロン スクリプト)

次の Python スクリプトは、Forest 関数を使用して、フィーチャに関する予測を行う方法を示しています。

# Import system modules
import arcpy

# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True

# Set the work space to a gdb
arcpy.env.workspace = r"C:\Data\BostonCrimeDB.gdb"

# Forest-based model taking advantage of both distance features and 
# explanatory rasters. The training and prediction data has been manually
# split so the percentage to exclude parameter was set to 0. A variable importance
# table is created to help assess results and advanced options have been used
# to fine tune the model.

prediction_type = "PREDICT_FEATURES"
in_features = r"Boston_Vandalism_Training"
variable_predict = "Vandalism_Count"
treat_variable_as_categorical = None
explanatory_variables = [["EduClass", "true"], ["MedianAge", "false"],
    ["HouseholdIncome", "false"], ["TotalPopulation", "false"]]
distance_features = r"Boston_Highways"
explanatory_rasters = r"LandUse true"
features_to_predict = r"Boston_Vandalism_Prediction"
output_features = r"Prediction_Output"
output_raster = None
explanatory_variable_matching = [["EduClass", "EduClass"], ["MedianAge", "MedianAge"], 
    ["HouseholdIncome", "HouseholdIncome"], ["TotalPopulation", "TotalPopulation"]]
explanatory_distance_matching = [["Boston_Highways", "Boston_Highways"]]
explanatory_rasters_matching = [["LandUse", "LandUse"]]
output_trained_features = r"Training_Output"
output_importance_table = r"Variable_Importance"
use_raster_values = True
number_of_trees = 100
minimum_leaf_size = 2
maximum_level = 5
sample_size = 100
random_sample = 3
percentage_for_training = 0

arcpy.stats.Forest(prediction_type, in_features, variable_predict,
    treat_variable_as_categorical, explanatory_variables, distance_features,
    explanatory_rasters, features_to_predict, output_features, output_raster,
    explanatory_variable_matching, explanatory_distance_matching, 
    explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,
    sample_size, random_sample, percentage_for_training)
Forest の例 3 (スタンドアロン スクリプト)

次の Python スクリプトは、Forest 関数を使用して、予測サーフェスを作成する方法を示しています。

# Import system modules
import arcpy

# Set property to overwrite existing outputs
arcpy.env.overwriteOutput = True

# Set the work space to a gdb
arcpy.env.workspace = r"C:\Data\Landsat.gdb"

# Using a forest-based model to classify a landsat image. The TrainingPolygons feature 
# class was created manually and is used to train the model to 
# classify the remainder of the landsat image.

prediction_type = "PREDICT_RASTER"
in_features = r"TrainingPolygons"
variable_predict = "LandClassName"
treat_variable_as_categorical = "CATEGORICAL" 
explanatory_variables = None
distance_features = None
explanatory_rasters = [["Band1", "false"], ["Band2", "false"], ["Band3", "false"]]
features_to_predict = None
output_features = None
output_raster = r"PredictionSurface"
explanatory_variable_matching = None
explanatory_distance_matching = None
explanatory_rasters_matching = [["Band1", "Band1"], ["Band2", "Band2"], ["Band3", "Band3"]]
output_trained_features = None
output_importance_table = None
use_raster_values = True
number_of_trees = 100
minimum_leaf_size = None
maximum_level = None
sample_size = 100
random_sample = None
percentage_for_training = 10

arcpy.stats.Forest(prediction_type, in_features, variable_predict,
    treat_variable_as_categorical, explanatory_variables, distance_features,
    explanatory_rasters, features_to_predict, output_features, output_raster,
    explanatory_variable_matching, explanatory_distance_matching, 
    explanatory_rasters_matching, output_trained_features, output_importance_table,
    use_raster_values, number_of_trees, minimum_leaf_size, maximum_level,
    sample_size, random_sample, percentage_for_training)

環境

特殊なケース

乱数ジェネレーター

使用される乱数ジェネレーターのタイプは常にメルセンヌ ツイスターです。

並列処理ファクター

並列処理は、予測を作成するときのみ使用されます。

ライセンス情報

  • Basic: 制限付き
  • Standard: 制限付き
  • Advanced: 制限付き

関連トピック