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

サマリー

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

フォレストベースの分類と回帰 (Forest-based Classification and Regression) の機能の詳細

フォレスト モデル図

使用法

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

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

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

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

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

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

  • このツールでは、作成されたモデルのパフォーマンスを理解するのに役立つメッセージとチャートも作成されます。このメッセージにアクセスするには[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタンをクリックするか、メッセージ セクションを展開します。ジオプロセシング履歴を介して、以前に実行した [フォレストベースの分類と回帰分析 (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 つの追加ラスターが [コンテンツ] ウィンドウに追加されます。

  • このツールは予測の並列処理をサポートしており、デフォルトで利用可能なプロセッサの 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

派生した出力

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

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

ラスター レイヤー

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})
名前説明データ タイプ
prediction_type

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

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

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

Feature Layer
variable_predict
(オプション)

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

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

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

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

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

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

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

Value Table
features_to_predict
(オプション)

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

Feature Layer
output_features
(オプション)

予測の結果を取得するための出力フィーチャクラス。

Feature Class
output_raster
(オプション)

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

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

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

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

右側の [distance_features] に対して指定された [in_features] のリスト。対応するフィーチャ セットは、左側の [features_to_predict] に対して指定する必要があります。

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

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

右側の [explanatory_rasters] に対して指定された [in_features] のリスト。対応するラスターを左側の作成対象の [features_to_predict] または [output_raster] に対して指定する必要があります。

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

Value Table
output_trained_features
(オプション)

[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_uncertainty_raster_layers

[calculate_uncertainty] がオンの場合、ツールは [variable_to_predict] の各予測値の周辺で 90 パーセントの予測間隔を計算します。

ラスター レイヤー

コードのサンプル

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: 制限付き

関連トピック