フォレストベースの分類と回帰 (Forest-based Classification and Regression) (空間統計)

サマリー

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

フォレストベースの分類と回帰の機能の詳細

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

使用法

  • このツールでは、予測に使用できるモデルの作成に使用される、何百にも上るツリー (決定木のアンサンブルと呼ばれる) が作成されます。 それぞれの決定木の作成には、元の (トレーニング) データのランダムに生成された部分が使用されます。 ツリーごとに独自の予測が生成され、結果が決定されます。 フォレスト モデルでは、不明なサンプルの結果を予測または分類するために、すべての決定木から得た決定を考慮します。 個々のツリーにはモデルの過剰適合の問題があることが考えられるため、この処理は非常に重要です。予測用にフォレスト内の複数のツリーを組み合わせると、単一のツリーに関連する過剰適合の問題に対処できます。

  • このツールは、3 通りの操作モードで使用できます。 [トレーニング] オプションを使用すると、さまざまな説明変数およびツール設定を調査しながら、それぞれのモデルのパフォーマンスを評価できます。 適切なモデルが見つかったら、[フィーチャを予測] または [ラスターを予測] オプションを使用できます。 このツールはデータドリブンであり、大規模なデータセットで最適に動作します。 最適な結果を得るためには、少なくとも数百のフィーチャに対してこのツールをトレーニングする必要があります。 このツールは、小規模なデータセットには適していません。

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

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

  • このツールは、さまざまな出力を生成します。 [出力トレーニング済みフィーチャ] には、作成されたモデルで使用されているすべての [入力トレーニング フィーチャ] 値とそのモデルで使用されているすべての説明変数 (使用されている入力フィールド、算出された距離、抽出または算出されたラスター値) が含まれます。 また、モデルのトレーニングに使用されているすべてのフィーチャに関する予測も含まれます。この予測は、作成されたモデルのパフォーマンスを評価するのに役立ちます。 このツールを予測に使用すると、[出力予測済みフィーチャ] 値を含む新規のフィーチャクラスが生成されるか、説明ラスターが指定されている場合は、新規の [出力予測サーフェス] 値が生成されます。

  • [出力トレーニング済みモデル ファイル] パラメーターを使用すると、トレーニング済みモデルの結果を再利用できるファイルとして保存することができます。 [空間統計モデル ファイルを使用して予測 (Predict Using Spatial Statistics Model File)] ツールを使用すると、モデル ファイルで新しいフィーチャの予測を立てることができます。

  • [フィーチャを予測] オプションを使用する場合は、[出力予測済みフィーチャ] 値を含む新規のフィーチャクラスが作成されます。 [ラスターを予測] オプションを使用する場合は、新規の [出力予測サーフェス] 値が作成されます。

  • このツールでは、作成されたモデルのパフォーマンスを理解するのに役立つメッセージとチャートも作成されます。 このメッセージにアクセスするには[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタンをクリックするか、メッセージ セクションを展開します。 ジオプロセシング履歴を介して、以前に実行した [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールのメッセージにアクセスすることもできます。 このメッセージには、モデル特性、Out of Bag エラー、変数重要度、検証診断に関する情報が記載されています。

    [出力変数重要度テーブル] パラメーターを使用すると、変数重要度を評価するためのチャートの表示に使用するテーブルを作成できます。 上位 20 の変数重要度の値もメッセージ ウィンドウで通知されます。 チャートには、[コンテンツ] ウィンドウのレイヤーの下で直接アクセスできます。

  • 説明変数は、フィールドから生成するか、距離フィーチャから算出するか、ラスターから抽出することができます。 これらのタイプの説明変数を任意に組み合わせて使用できますが、少なくとも 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.
    • 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
出力変数重要度テーブル
(オプション)

作成されたモデルで使用されている説明変数 (フィールド、距離フィーチャ、およびラスター) ごとの重要度を示す情報を含むテーブル。 このテーブルから作成されたチャートには、[コンテンツ] ウィンドウでアクセスできます。

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

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

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

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

フォレスト モデル内で作成されるツリーの数。 通常、ツリーの数を多くすると、モデル予測の精度は上がりますが、そのモデルでの計算時間が長くなります。 デフォルトのツリー数は 100 です。

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

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

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

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

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

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

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

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

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

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

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

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

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

作成されたモデルのパフォーマンスをまとめた分類の混同行列。 このテーブルを使用すると、ツールが出力メッセージ内で計算する精度と感度の計測値に加えて、他の診断を計算できます。

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

[整合チェックの実行回数] 値が 2 より大きい場合、このテーブルは各モデルに対して R2 の分布のチャートを作成します。 この分布を使用して、モデルの安定性を評価できます。

Table
散在するカテゴリの補正
(オプション)

頻度にかかわらず、トレーニング データセット内の各カテゴリを各ツリーで表すかどうかを指定します。

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

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

ツールの反復回数。 各実行に対する R2 の分布は、[出力整合チェック テーブル] パラメーターを使用して表示できます。 これが設定され、予測が生成される場合、最高の R2 値を生成するモデルのみが予測に使用されます。

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

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

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

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

File

派生した出力

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

[不確実性の計算] パラメーターがオンの場合、ツールは [予測対象変数] パラメーターの予測値の周辺で 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})
名前説明データ タイプ
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 値までの距離が算出され、説明変数が自動的に作成されます。 入力された各 distance_features 値から最近隣の in_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_to_predict フィールドとそれに伴う予測 (トレーニング済みのモデルのパフォーマンスを詳しく評価する際に使用)。

Feature Class
output_importance_table
(オプション)

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

Table
use_raster_values
(オプション)

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

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

フォレスト モデル内で作成されるツリーの数。 通常、ツリーの数を多くすると、モデル予測の精度は上がりますが、そのモデルでの計算時間が長くなります。 デフォルトのツリー数は 100 です。

Long
minimum_leaf_size
(オプション)

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

Long
maximum_depth
(オプション)

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

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
(オプション)

作成されたモデルのパフォーマンスをまとめた分類の混同行列。 このテーブルを使用すると、ツールが出力メッセージ内で計算する精度と感度の計測値に加えて、他の診断を計算できます。

Table
output_validation_table
(オプション)

[整合チェックの実行回数] 値が 2 より大きい場合、このテーブルは各モデルに対して R2 の分布のチャートを作成します。 この分布を使用して、モデルの安定性を評価できます。

Table
compensate_sparse_categories
(オプション)

頻度にかかわらず、トレーニング データセット内の各カテゴリを各ツリーで表すかどうかを指定します。

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

ツールの反復回数。 各実行に対する R2 の分布は、[出力整合チェック テーブル] パラメーターを使用して表示できます。 これが設定され、予測が生成される場合、最高の R2 値を生成するモデルのみが予測に使用されます。

Long
calculate_uncertainty
(オプション)

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

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

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

File

派生した出力

名前説明データ タイプ
output_uncertainty_raster_layers

calculate_uncertaintyTRUE に設定されている場合、ツールは variable_to_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)

環境

特殊なケース

乱数ジェネレーター

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

並列処理ファクター

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