[フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールは、トレーニング データセットの一部として提供される既知の値に基づいてモデルをトレーニングします。この予測モデルを使用して、同様の関連付けられている説明変数を含む予測データセットの未知の値を予測することができます。ツールは、教師付き機械学習方法である Leo Breiman のランダム フォレスト アルゴリズムを転用してモデルを作成し、予測を生成します。このツールにより、「アンサンブル」または「フォレスト」と呼ばれる多数の決定木が作成され、予測に使用されます。各決定木は、それぞれ独自の予測を生成し、最終予測を行うための投票方法の一部として使用されます。最終予測は、単一のツリーではなく、フォレスト全体に基づきます。個別のツリーではなくフォレスト全体を使用することにより、フォレストを構成する各ツリー内のトレーニング データセットのランダム サブセットと説明変数のランダムサブセットの両方を使用するのと同様に、トレーニング データセットへのモデルの過剰適合を避けることができます。
適用例
このツールは、次のような場合に適用できます。
- 海草の存在に関するデータや属性およびラスターとして表される多数の環境説明変数が、上流の工場や主要な港までの距離などのデータに加えて与えられた場合、それらの同じ環境説明変数の将来予測に基づき、将来の海草の存在を予測することができます。
- 全国の数百軒の農場の作物収穫量とそれらの各農場のその他の属性 (従業員数、農業面積など) のデータ、各農場の傾斜、標高、降雨、気温を表す多数のラスターがあるとします。それらのデータを使用して、(他のすべての変数はあるが) 作物の収穫がない農場を表す一連のフィーチャを提供したり、収穫量を予測したりできます。
- 今年販売された住宅の価格に基づいて、住宅の価格を予測できます。住宅の販売価格と、寝室数、学校までの距離、主要な高速道路までの距離、平均収入、犯罪数などの情報を使用して、同様の住宅の販売価格を予測できます。
- トレーニング データと、複数の個別バンドを含むラスター レイヤーと NDVI のような製品の組み合わせにより、土地利用タイプを分類できます。
- 子供の血中の鉛濃度やその子供の家の課税パーセル ID などの情報と、家の築年数などのパーセルレベルの属性、収入や教育レベルなどの国勢調査レベルの情報、鉛および鉛化合物の有害物排出を反映した全国規模のデータセットなどの情報を与えられた場合、血中の鉛濃度のデータなしでパーセルの鉛汚染のリスクを予測できます。これらのリスク予測は、地域の警察や教育プログラムに影響する可能性があります。
モデルのトレーニング
フォレストベースの分類と回帰分析 (Forest-based Classification and Regression) ツールの使用における最初の手順は、予測のランダム フォレスト モデルのトレーニングです。トレーニングにより、説明変数と [予測対象変数] パラメーターの間のリレーションシップを確立するフォレストが作成されます。[トレーニングのみ] オプションを選択するか、トレーニングおよび予測を行うかにかかわらず、ツールは、[予測対象変数] パラメーターと、[説明トレーニング変数]、[説明トレーニング距離フィーチャ] (Advanced ライセンスで使用可能)、および [説明トレーニング ラスター] (Spatial Analyst ライセンスで使用可能) パラメーターの任意の組み合わせに基づいてモデルを構築することから始めます。ツールは、作成されたモデルのパフォーマンスを評価し、追加診断を下します。
デフォルトでは、トレーニング データの 10% が、検証のためトレーニングから除外されます。モデルのトレーニング後、これを使用してテスト データの値が予測されます。予測された値は、観測された値と比較され、トレーニング処理から除外されたデータに基づく予測精度の基準を提供します。フォレストの特性、Out of Bag (OOB) エラー、変数重要度のサマリーを含むモデルに関する追加の診断も含まれます。これらの出力については、以下で詳細に説明します。
モデルは、カテゴリに分類された [予測対象変数] (分類) または連続 [予測対象変数] (回帰) のいずれかを予測するように構築できます。[変数をカテゴリとして処理] を選択すると、構築されたモデルは分類ツリーに基づきます。オフのままにすると、[予測対象変数] パラメーターは連続と見なされ、構築されたモデルは回帰ツリーに基づきます。
説明トレーニング変数
フォレスト モデルをトレーニングするために使用される最も一般的な説明変数の形に、[予測対象変数] パラメーターも含むトレーニング データセット内のフィードがあります。これらのフィールドは、連続またはカテゴリです。連続変数とカテゴリ変数のどちらを予測するかに関係なく、[説明トレーニング変数] は連続またはカテゴリです。トレーニングされたモデルが予測にも使用されている場合、入力された各 [説明トレーニング変数] は、トレーニング データセットと予測データセットの両方で使用できなければなりません。
説明トレーニング距離フィーチャ
フォレストベースの分類と回帰分析 (Forest-based Classification and Regression) は空間機械学習ツールではありませんが、分析における空間の機能を活用する 1 つの方法として、距離フィーチャの使用があります。一連の小売店の業績をモデリングしている場合、高速道路の出入り口までの距離や、最寄りの競合店までの距離を表す変数は、正確な予測のためには重要である可能性があります。同様に、大気環境をモデリングする場合、主な汚染源への距離や幹線道路までの距離を表す説明変数も重要です。距離フィーチャを使用して、入力されたフィーチャから [入力トレーニング フィーチャ] までの距離を計算することで自動的に説明変数が作成されます。入力された各 [説明トレーニング距離フィーチャ] から最近隣の [入力トレーニング フィーチャ] までの距離が算出されます。入力された [説明トレーニング距離フィーチャ] がポリゴンまたはラインの場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として計算されます。ただし、ポリゴンとラインの場合、距離は別々に計算されます。詳細は「近接ツールによる距離の計算方法」をご参照ください。
説明トレーニング ラスター
[説明トレーニング ラスター] を使用して、モデルをトレーニングし、画像、DEM、人口密度モデル、または環境測定を含むデータ ソースを公開することもできます。[説明トレーニング ラスター] パラメーターは、Spatial Analyst ライセンスを所有している場合のみ使用できます。[入力トレーニング フィーチャ] がポイントの場合、ツールは詳細に調査して、各ポイント位置の説明変数を展開します。マルチバンド ラスターの場合は、最初のバンドのみが使用されます。モザイク データセットの場合は、最初に [モザイク レイヤーの作成 (Make Mosaic Layer)] ツールを使用します。
これらのラスターは、連続またはカテゴリです。連続変数とカテゴリ変数のどちらを予測するかに関係なく、[説明トレーニング ラスター] は連続またはカテゴリです。
[入力トレーニング フィーチャ] がポリゴンで、[予測対象変数] がカテゴリで、[説明トレーニングラスター] を使用している場合は、[トレーニング用にポリゴンをラスター解像度に変換] オプションを指定できます。このオプションをオンにすると、ラスター セルの中心点を含みそのポイント データセットとして扱われるポリゴンが、各ラスター セルの中心点のポイントに分割されます。続いて各ポイントの位置のラスター値が抽出され、モデルのトレーニングに使用されます。モデルは、ポリゴンではなく、各セルの中心点について抽出されたラスター値でトレーニングされるようになります。数値変数では共一次内挿法、カテゴリ変数では最近隣内挿法が使用されます。変換されたポリゴンのデフォルトのセル サイズは、入力ラスターの最大セル サイズになります。ただし、[セルサイズ] 環境設定を使用して、これを変更できます。オフにすると、各ポリゴンの 1 つのラスター値がそのモデルで使用されます。各ポリゴンには、連続ラスターの場合は平均値、カテゴリ ラスターの場合は多数を占める値が割り当てられています。
フォレストベースのモデルを使用した予測
初めは [トレーニングのみ] オプションを使用して実行し、分析結果を評価し、必要があれば使用されている変数や詳細パラメーターを調整することをお勧めします。最適なモデルができたら、ツールを再実行してフィーチャまたはラスターを予測してください。予測に移る際は、[検証で除外するトレーニング データ (%)] パラメーターを 0% に変更することをお勧めします。これにより、予測に使用する最終モデルの使用可能なすべてのトレーニング データを使用できます。以下の方法で予測できます。
同じ分析範囲の予測
同じ分析範囲のフィーチャを予測する場合、[説明トレーニング距離フィーチャ] および [説明トレーニング ラスター] と分析範囲が重なることはもちろんですが、関連する説明変数 (フィールド) をすべて、各予測フィーチャが含んでいる必要があります。
入力された [説明トレーニング ラスター] を使用して、同じ分析範囲のラスターを予測する場合、予測はすべての説明ラスターの範囲と重なります。
異なる分析範囲の予測
異なる分析範囲のフィーチャを予測する場合、関連する説明変数 (フィールド) をすべて、各予測フィーチャが含んでいる必要があります。また、新しい説明距離フィーチャおよび説明ラスターが、対応する [説明トレーニング距離フィーチャ] およびラスターと一致している必要があります。これらの新しい距離フィーチャおよびラスターは、新しい分析範囲で使用でき、[説明トレーニング距離フィーチャ] および [説明トレーニングラスター] と対応していなければなりません。たとえば、カテゴリ ラスターを使用してモデルをトレーニングする場合、対応する予測説明ラスターは異なるカテゴリや著しく異なる範囲の値を含むことができません。
異なる分析範囲のラスターを予測する場合、新しい説明予測ラスターが入力され、対応する [説明トレーニング ラスター] に一致している必要があります。対応する予測説明ラスターは異なるカテゴリや著しく異なる範囲の値を含むことができません。結果の [出力予測ラスター] は、入力されたすべての説明予測ラスターの範囲と重なります。
トレーニングに使用される説明変数と将来が予測された変数の一致による、異なる期間に対する予測
将来の特定期間に対する予測では、フィーチャかラスターかにかかわらず、予測される各説明予測変数 (フィールド、距離フィーチャ、およびラスター) は、対応する説明トレーニング変数に一致する必要があります。
フィーチャを予測
[説明トレーニング変数] の組み合わせを使用してトレーニングされたモデルの場合、[説明トレーニング距離フィーチャ] と [説明トレーニング ラスター] を使用して、同じまたは異なる分析範囲でポイントまたはポリゴンに対して予測できます。フィーチャに対する予測では、予測を受け取るそれぞれのフィーチャが、入力された各フィールド、距離フィーチャ、およびラスターの値を持つ必要があります。
[Input Training Features] と [Input Prediction Features] のフィールド名が一致しない場合、変数照合パラメーターが指定されます。説明変数が一致している場合、Prediction フィールドと Training フィールドは同じタイプでなければなりません (Training の double フィールドは Prediction の double フィールドと一致する必要があります)。
異なる分析範囲または異なる期間で予測しているため、モデルのトレーニングに使用される以外の距離フィーチャまたはラスターを使用するために、[距離フィーチャの照合] パラメーターと [説明ラスターの照合] パラメーターが提供されています。
ラスターを予測
[説明トレーニング ラスター] のみを使用してトレーニングされたモデルを使用する場合、同じ分析範囲または異なる分析範囲のラスターを予測できます。異なる分析範囲または異なる期間で予測しているため、モデルのトレーニングに使用される以外の予測ラスターを使用するために、[説明ラスターの照合] パラメーターが提供されています。[予測タイプ] で [ラスターを予測] を選択すると、Spatial Analyst ライセンスがある場合は [出力予測ラスター] を作成できます。
出力メッセージと診断
このツールは、モデルのパフォーマンスを把握するのに役立つメッセージおよびチャートも作成します。このメッセージにアクセスするには、[ジオプロセシング] ウィンドウでプログレス バーの上にカーソルを置くか、ポップアップ ボタンをクリックするか、メッセージ セクションを展開します。ジオプロセシング履歴を介して、以前に実行した [フォレストベースの分類と回帰分析 (Forest-based Classification and Regression)] ツールのメッセージにアクセスすることもできます。メッセージには、モデルの特性、OOB エラー、変数の重要度、および整合の診断についての情報が含まれます。
モデルの特性テーブルには、フォレスト モデルの多くの重要な側面、[高度なフォレスト オプション] のパラメーターを使って選択したいくつかの特性、およびデータ ドリブンのいくつかの特性に関する情報が含まれます。データによって異なるフォレストの特性は、モデルのパフォーマンスをいつ最適化するかを把握するために重要になることがあります。ツリー階層範囲は、そのフォレストの最大深度と最低深度を示します (最大深度はパラメーターとして設定されますが、その最大深度を下回る深度が可能です)。平均ツリー階層は、フォレストの平均的な決定木深度を報告します。最大深度が 100 に設定されたが、多くの場合はるかに小さい深度が使用されていることを範囲および平均深度が示す場合は、より小さい最大深度パラメーターを使用したほうが、モデルがトレーニング データに過剰適合する可能性を軽減できるので、モデルのパフォーマンスを向上できます。[ランダムにサンプリングされる変数の数] オプションは、フォレストの特定ツリーで使用されるランダムに選択された変数の数を示します。各ツリーは、異なる組み合わせの変数を持ちますが、このオプションで指定された数の変数を使用します。デフォルトで選択される数は、使用できるフィーチャの数と変数の数の組み合わせに基づきます。回帰の場合は、説明変数の合計数の 1/3 (フィーチャ、ラスター、距離フィーチャを含む) になります。分類の場合、変数の総数の平方根です。
フォレストの基本的な特性に加えて、モデルの精度の評価に有用な OOB エラーが提供されます。平均二乗誤差 (MSE) と説明された変動のパーセンテージはどちらも、トレーニング データセットの観測値に基づいて [予測対象変数] を正確に予測するモデルの能力に基づいています。OOB は、フォレストを構成するツリーのサブセットごとには見えないトレーニング データセットの一部のデータを使用して計算された予測エラーです。自分のデータを 100 パーセント使用してモデルをトレーニングしたい場合は、OOB に依拠してモデルの精度を評価します。これらのエラーは、ツリーの数を増やすとモデルのパフォーマンスが向上するかどうかを評価するため、ツリーの数の半分が使用された場合と、ツリーの合計数が使用された場合について報告されます。エラーおよび説明された変動の割合が両方のツリー数で近い値の場合、モデルのパフォーマンスへの影響を最小限にして、使用するツリー数を減らせることを示しています。ただし、コンピューターの性能に適した数のツリーを使用することをお勧めします。フォレスト内のツリーの数が多いほど、結果がより安定し、データとサンプリング方式のノイズの影響を受けにくいモデルになります。
[予測対象変数] 値がカテゴリ ([変数をカテゴリとして処理] パラメーターで示される) の場合、OOB エラーは、フォレスト内のツリーのサブセットが表示されなかったツリー間の各カテゴリの不正な分類の割合に基づいて計算されます。各カテゴリの不正な OOB 分類の割合は、ジオプロセシング メッセージに出力されます。分類の MSE も出力され、全カテゴリ間の不正な OOB 分類の全体の割合として解釈されます。[ツリー数] パラメーターに少ない数を使用すると、一部のツリーで 1 つまたは複数のカテゴリのトレーニング データが表示されない可能性があります。この場合、OOB エラーは 100 パーセントになります。
モデルのパフォーマンスにおけるその他の主要な因子は、使用される説明変数です。上位変数重要度テーブルには、上位 20 の重要度スコアを持つ変数が一覧されます。重要度はジニ係数を使用して計算されます。これは、ある変数が分岐の原因となる回数、およびその分岐の影響をツリー数で除算した値と考えることができます。分岐は、決定木内の各決定です。変数の重要度を使用して、有意であることが検出された変数を含む、より簡素なモデルを作成できます。
[出力診断テーブル] を指定すると、モデルで使用される各変数の重要度を表示するオプションのバー チャートが作成されます。このチャートには、[コンテンツ] ウィンドウからアクセスできます。チャートの Y 軸にはモデルで使用される変数が、X 軸にはジニ係数に基づく重要度が示されます。
[整合チェックの実行数] に値が指定されている場合は、バー チャートではなく、変数重要度の箱ひげ図が作成されます。箱ひげ図には、整合チェックのすべての実行にわたる変数重要度の値の分布が表示されます。変数重要度の分布は、トレーニングされたフォレスト モデルの安定性を示します。変数重要度が整合チェックの実行間で大きく変化している場合 (図の中の長いボックスで示されます)、これは不安定なランダム フォレスト モデルを示すことがあります。不安定なモデルは、多くの場合、[ツリー数] を増やして、データ内のより複雑なリレーションシップを取得することで改善できます。
変数重要度は、どの変数がモデルの結果につながっているかを理解するために役立つ診断であり、モデルがどれほど適切に予測しているかを示す基準 (回帰モデルにおける R2 など) ではありません。ベスト プラクティスは、[検証で除外するトレーニングデータ] を 0 に設定し、変数重要度の箱ひげ図を探索することで、すべてのトレーニング データを使用することです。次に、安定したモデルが得られるまで、[ツリー数] や [最大ツリー階層] などの他のパラメーターを変更して箱ひげ図を探索します。変数重要度に関する安定したモデルがトレーニングされたら、[検証で除外するトレーニングデータ] の値を大きくして、モデルの精度を判定できます。診断メッセージで OOB エラーを調べ、モデルの精度を判定します。安定した変数重要度を持ち、かつ精度の高いモデルが得られたら、[整合チェックの実行数] を [1] に設定して、モデルの最終的な変数重要度を示す 1 つのバー チャートを取得できます。
モデルの重要性を評価するもう 1 つの重要な方法は、モデルを使用して、モデルのトレーニングに含まれないフィーチャの値を予測することです。デフォルトでは、このテスト データセットは [入力トレーニング フィーチャ] の 10 パーセントで、[検証で除外するトレーニング データ (%)] パラメーターを使用して制御できます。OOB のデメリットの 1 つは、フォレスト全体ではなく、フォレストのサブセット (トレーニング データセットの特定のフィーチャを使用していないツリー) を使用することです。検証のため一部のデータを除外することで、フォレスト全体のエラー メトリクスを評価できます。
連続変数を予測する場合、各テスト フィーチャで観測された値がトレーニングされたモデルに基づくフィーチャの予測値と比較され、関連する R 二乗、P 値、および標準誤差が報告されます。これらの診断は、テスト データセットがランダムに選択されるため、トレーニング処理を通じて実行するたびに変わります。実行ごとに変わらないモデルを作成するには、[乱数ジェネレーター] 環境設定でシードを設定します。
カテゴリ変数を予測すると、感度と精度がメッセージ ウィンドウで通知されます。これらの診断は混同行列を使用して計算されます。これは、対象のカテゴリが正しく分類されたインスタンスと誤って分類されたインスタンス、およびその他のカテゴリが対象のカテゴリとして誤分類されたときのインスタンスをそれぞれ追跡します。観測されたカテゴリを持つフィーチャがそのカテゴリで正しく予測された時間の割合として、各カテゴリの感度がレポートされます。たとえば、土地と水域を予測していて、土地の感度が 1.00 の場合、土地とマークが付けられたすべてのフィーチャが正しく測定されたことを示しています。水域フィーチャが誤って土地とマーク付けされた場合、これは土地の感度に反映されません。ただし、これは、水域の感度に反映されます。つまり、水域フィーチャの 1 つが正しく予測されなかったことを示します。
精度の診断は、特定のカテゴリを持つフィーチャの予測の度合いと、その他のカテゴリが対象のカテゴリに対して誤って分類される頻度の両方を考慮に入れます。これは、そのカテゴリの「混同」の合計数の中でカテゴリがどれくらいの頻度で正しく識別されているかを示します。変数を 2 つのクラスだけで分類すると、精度の計測値は各クラスで同じになりますが、感度は異なります。変数を 3 つ以上の変数で分類すると、感度と精度はクラスによって異なります。
予測された値をトレーニング データセットの観測値と比較するため、同じ診断が提供されます。これらの診断は、モデルがトレーニング データにどのように適合するかを理解するのに役立てることができます。
説明範囲診断は、トレーニング、検証、予測に使用された値が最適なモデルの生成に十分で、他のモデル診断を信頼できるかどうかを評価するために役立ちます。ランダム フォレスト モデルのトレーニングに使用されるデータは、生成される分類および予測の品質に大きな影響を及ぼします。トレーニング データが、モデリング対象のデータを代表するのが理想的です。デフォルトでは、トレーニング データの 10% がランダムに除外されるため、[入力トレーニング フィーチャ] のトレーニング サブセットおよび検証サブセットとなります。説明変数範囲診断テーブルには、これらのサブセットの最小値と最大値、およびフィーチャまたはラスターの予測の場合は、予測に使用されたデータの最小値と最大値が示されます。
サブセットの決定方法がランダムであるため、トレーニング サブセット内の変数の値が [入力トレーニング フィーチャ] の全体的な値を表していない可能性があります。各連続説明変数で、Training Share 列は [入力トレーニング フィーチャ] のトレーニング サブセットの値とすべてのフィーチャの値の間の重複のパーセンテージを示します。たとえば、[入力トレーニング フィーチャ] の変数 A が 1 ~ 100 の値を持ち、トレーニング サブセットが 50 ~ 100 の値を持っていた場合、変数 A の Training Share は 0.50 つまり 50% になります。変数 A では、[入力トレーニング フィーチャ] の値の範囲の 50% が、トレーニング サブセットによってカバーされます。トレーニング サブセットが、モデル内の各説明変数で [入力トレーニング フィーチャ] の値の広範囲をカバーしない場合は、他のモデル診断で偏りが生じる可能性があります。同様の計算が Validation Share 診断の生成に使用されます。モデルの検証に使用された値が、モデルのトレーニングに使用された値の範囲をできるだけ多くカバーしていることが重要です。たとえば、トレーニング サブセットの変数 B が 1 ~ 100 の値を持ち、検証サブセットが 1 ~ 10 の値を持っていた場合、変数 B の Validation Share は 0.10 つまり 10% になります。このように値の範囲が小さいと、すべてが低い値またはすべてが高い値となる可能性があるため、他の診断で偏りが生じます。検証サブセットが保持している値がすべて低い値であった場合、他のモデル診断 (MSE や説明されたばらつきの割合など) は、モデルが [入力トレーニング フィーチャ] の値の完全な範囲ではなく、低い値に対してどれだけ適切に予測を行うかを実際に報告することになります。
Prediction Share 診断は特に重要です。フォレストベースのモデルは外挿されないため、モデルのトレーニングが実行された値にしか分類も予測もできません。Prediction Share は、トレーニング データの値と予測データの値の間の重複のパーセンテージです。値が 0 未満の場合、モデルのトレーニングが実行されなかった値に対して予測を行おうとしていることを示します。値が 1 の場合、トレーニング サブセット内の値の範囲と予測に使用されている値の範囲が等しいことを示します。値が 1 より大きい場合、トレーニング サブセット内の値の範囲が、予測に使用されている値の範囲よりも大きいことを示します。
3 つの共有診断はすべて、サブセットの範囲が一致している場合にのみ有効です。たとえば、変数 C の検証サブセットが 1 ~ 100 の値を持ち、トレーニング サブセットが 90 ~ 200 の値を持っていた場合、それらは 10% 重複しますが、一致範囲を持ちません。この場合、診断に非一致範囲を示すアスタリスクが付けられます。最小値と最大値を調べ、非重複の範囲と方向を確認します。モデルがトレーニング データの範囲外で予測しようとしている場合、Prediction Share にプラス記号 (+) が付けられます。
説明変数範囲診断テーブルの許容可能な値には、絶対的な規則がありません。トレーニング データの制約を考慮すると、Training Share と Validation Share はできるだけ高い必要があります。Prediction Share は、1 未満になるべきではありません。Validation Share 診断が低い場合は、[検証で除外するトレーニング データ (%)] パラメーターの値を大きくすることを検討します。また、モデルを複数回実行して、範囲診断の最適値のバランスが得られる実行を選択することも検討します。各実行で使用されたランダム シードは、メッセージで報告されます。
このツールを使用すると、さまざまな出力を得ることもできます。[出力トレーニング済みフィーチャ] には、モデルで使用されているすべての [入力トレーニング フィーチャ] と [説明トレーニング変数] が含まれます。回帰の場合、トレーニング済みフィーチャは、予測の標準化残差に基づいてマップに描画されます。 分類の場合、トレーニング済みフィーチャのシンボルは、フィーチャが正しく分類されているかどうかに基づきます。モデルが既知のカテゴリを正しく予測すると、フィーチャには [Correctly Classified] というラベルが付けられ、それ以外の場合はフィーチャに [labeled Misclassified] というラベルが付けられます。
トレーニング済みフィーチャのフィールドには、各 [説明トレーニング ラスター] 変数の抽出されたラスター値と各 [説明トレーニング距離フィーチャ] 変数の計算済み距離値が含まれます。それらの新しいフィールドを使用すると、毎回ラスター値を抽出して距離値を計算せずに、分析のトレーニング部分を返すことができます。[出力トレーニング済みフィーチャ] には、すべてのフィーチャ、つまりトレーニングで使用されるフィーチャと検証用に除外されたフィーチャの予測も含まれます。これは、モデルのパフォーマンス評価に有用です。[出力トレーニング済みフィーチャ] の trained_features フィールドは、テスト データの場合はすべて 0 の値 (トレーニングで使用されなかったことを示します)、トレーニング データの場合は 1 の値になります。予測のためにこのツールを使用すると、ツールは [出力予測フィーチャ] の値を含む新しいフィーチャクラス、または説明ラスターが入力された場合は新しい [出力予測サーフェス] の値を生成します。
高度なフォレスト オプション
フォレストベース手法の強みは、弱い予測因子 (ツリー) の共通性をキャプチャすることと、それを組み合わせて強い予測因子 (フォレスト) を作成することにあります。ツリーごとに常にある関係がとらえられる場合、モデルが複雑でない場合でも検出できる強い関係がデータに存在していることを示しています。フォレストのパラメーター調整により、結果として強力なモデルを得られる多数の弱い予測因子を作成することができます。各ツリーではより少ない情報量で弱い予測因子を作成できます。これを行うには、ツリーあたりのフィーチャの小さいサブセット、ツリーあたりの少ない数の変数、および少ないツリー階層を組み合わせて使用します。ツリー数は、それらの弱い予測因子の作成数を制御します。予測因子 (ツリー) が弱いほど、強力なモデルを作成するためにより多くのツリーが必要になります。
ツールでは、以下の詳細なトレーニング オプションと整合チェック オプションを選択できます。
- [ツリーの数] のデフォルト値は 100 です。フォレスト モデルのツリーの数を増やすと、通常、モデルの予測精度が増しますが、モデルの計算に時間がかかるようになります。
- [最小リーフ サイズ] はリーフ (さらに分岐することのないツリー上の終点ノード) を維持するために必要な観測の最小数です。デフォルト最小値は、回帰の場合の 5、分類の場合は 1 です。大規模なデータセットの場合は、これらの数を大きくすると、ツールの実行回数が少なくなります。リーフ サイズが非常に小さい (定義された最小値に近い) 場合、フォレストはデータのノイズの影響を受けやすくなります。より安定したモデルを得るには、[最小リーフ サイズ] を増やして分析します。
- [最大ツリー階層] は、ツリーが下に伸びる分岐の最大数です。大きい最大階層を使用すると、より多くの分割が作成され、モデルを過剰適合する可能性が増加する場合があります。デフォルト値は、データに基づき、作成されるツリー数と含まれる変数の数によって異なります。[最小リーフ サイズ] の値に達した後、ノードは分岐できませんので、注意してください。[最小リーフ サイズ] と [最大ツリー階層] の両方が設定されている場合、ツリー深度の決定には [最小リーフ サイズ] が使用されます。
- [ツリーあたりの利用可能なデータ (%)] パラメーターでは、各決定木で使用される [入力トレーニング フィーチャ] の割合を指定します。デフォルトはデータの 100% です。フォレストの各決定木は、使用可能なトレーニング データのランダムなサブセット (約 2/3) を使用して作成されます。各決定木の入力データの割合を低くすると、大規模なデータセットの場合、ツールの実行速度が上がります。
- [ランダムにサンプリングされる変数の数] パラメーターは、各決定木の作成に使用される説明変数の数を指定します。フォレストの各決定木は、指定された説明変数のランダムなサブセットを使用して作成されます。各決定木で使用される変数の数を増やすと、特に 1 つのドミナント変数がある場合は、モデルを過剰適合する可能性が増加します。一般的な (また、ツールでデフォルト使用されている) 方法では、[予測対象変数] が数値の場合は説明変数 (フィールド、距離フィーチャ、およびラスター) の合計数の平方根を使用します。[予測対象変数] がカテゴリの場合は説明変数 (フィールド、距離フィーチャ、およびラスター) の合計数を 3 で除算します。
- [検証で除外するトレーニング データ (%)] パラメーターは、[入力トレーニング フィーチャ] の割合 (10 パーセントから 50 パーセントの間) を指定し、検証用のテスト データセットとして予約します。モデルは、このランダムなデータのサブセットを除いてトレーニングされます。それらのフィーチャの観測値は、モデルのパフォーマンスを評価するため、予測された値と比較されます。デフォルトは 10 パーセントです。
- [不確実性の計算] パラメーターがオンである場合、ツールは [予測対象変数] の各予測値の周りの 90 パーセントの予測間隔を計算します。[予測タイプ] が [トレーニングのみ] または [フィーチャを予測] である場合は、[出力トレーニング済みフィーチャ] または [出力予測フィーチャ] に 2 つのフィールドが追加されます。これらのフィールドは、末尾に _P05 および _P95 が付き、予測間隔の上限と下限を表します。新しい観測では、同じ説明変数の場合、新しい観測値が予測間隔内に入ることを 90 パーセントの信頼度で予測できます。[ラスターを予測] オプションが使用される場合は、予測間隔の上限と下限を表す 2 つのラスターが [コンテンツ] ウィンドウに追加されます。予測間隔は、分位点回帰フォレストを使用して計算されます。分位点回帰フォレストでは、フォレストからの最終予測を単に保持するのではなく、フォレストの各リーフからの予測値が保存され、予測値の分布の構築に使用されます。
ベスト プラクティス
[フォレストベースの分類と回帰分析 (Random Forest Classification and Regression)] ツールを使用するときのベスト プラクティスを次に示します。
- フォレスト モデルは、最善の結果を得るために少なくとも数百のフィーチャでトレーニングされる必要があり、非常に小さいデータセットに適したツールではありません。
- このツールは、モデルのトレーニングに使用される説明変数の範囲外の説明変数で予測しようとすると、よい結果を得られない可能性があります。フォレストベースのモデルは外挿しません。モデルがトレーニングされた値の範囲を分類または予測のみが可能です。元のトレーニング データセットの範囲よりはるかに広いまたは狭い範囲の説明変数に基づく値の予測では、モデルは元のデータセットの最高値または最低値に近い値を見積もります。
- [説明トレーニング ラスター] から値を抽出する場合や [説明トレーニング距離フィーチャ] を使用して距離を計算する場合のパフォーマンスを上げるには、検証用のデータを除外せず全データを使用したモデルのトレーニングを検討し、[出力トレーニング済みフィーチャ] を作成するようにしてください。ツールを次回実行したときに、[出力トレーニング済みフィーチャ] を [入力トレーニング フィーチャ] として使用し、モデルをトレーニングするたびに抽出するのではなく、すべての抽出された値と距離を [説明トレーニング変数] として使用します。これを実行する場合は、[ツリーの数]、[最大ツリー階層] および [ランダムにサンプリングされた変数の数] を 1 に設定して、解析用のデータをすばやく準備するために非常に小さなダミー ツリーを作成します。
- [ツリーの数] パラメーターのデフォルト値は 100 ですが、これはデータ依存ではありません。必要なツリー数は、説明変数、データセットのサイズ、[予測対象変数] の関係の複雑さ、およびこれらの変数の変動よって多くなります。
- フォレスト内の [ツリーの数] の値を増やし、OOB または分類エラーを記録します。モデル パフォーマンスの評価で最高の結果を得るには、[ツリーの数] の値を最低 3 倍、最低 500 ツリーに増やすことをお勧めします。
- ツールの実行回数は、ツリーごとに使用される変数の数によって大きく異なります。ツリーごとに使用する変数の数が少ないと過剰適合の可能性が軽減されますが、モデルのパフォーマンスを高めるためにツリーごとに使用する変数を少なくしている場合は、使用するツリーの数を多くしてください。
- 実行のたびに結果が変わらないモデルを作成するため、[乱数ジェネレーター] 環境設定でシードを設定できます。モデルにランダム性は残りますが、そのランダム性は実行ごとに変わりません。
参照
Breiman, Leo. (1996). "Out-Of-Bag Estimation." Abstract.
Breiman, L. (1996). "Bagging predictors." Machine learning 24 (2): 123-140.
Breiman, Leo. (2001). "Random Forests." Machine Learning 45 (1): 5-32. https://doi.org/10.1023/A:1010933404324.
Breiman, L., J.H. Friedman, R.A. Olshen, and C.J. Stone. (2017). Classification and regression trees. New York: Routledge. Chapter 4.
Dietterich, T. G. (2000, June). "Ensemble methods in machine learning." In International workshop on multiple classifier systems,. 1–15. Springer, Berlin, Heidelberg.
Gini, C. 1912 1955. Variabilità e mutabilità. Reprinted in Memorie di metodologica statistica (eds. E. Pizetti and T. Salvemini). 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: 278-282. IEEE.
James, G., D. Witten, T. Hastie, and R. Tibshirani. (2013). An introduction to statistical learning Vol. 112. New York: springer.
LeBlanc, M. and R. Tibshirani. (1996). "Combining estimates in regression and classification." Journal of the American Statistical Association 91 (436): 1641-1650.
Loh, W. Y. and Y. S. Shih. (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. and Y. Bengio. (2000). "Inference for the generalization error." In Advances in neural information processing systems, 307-313.
Strobl, C., A. L. Boulesteix, T. Kneib, T. Augustin, and A. Zeileis. (2008). "Conditional variable importance for random forests." BMC bioinformatics 9 (1): 307.
Zhou, Z. H. (2012). Ensemble methods: foundations and algorithms. CRC press.