フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression) の機能

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)] ツールは、トレーニング データセットの一部として提供されている既知の値に基づいてモデルをトレーニングします。 このモデルを使用すると、同じ説明変数を含むデータセット内の不明な値を予測することができます。 このツールでは、Leo Breiman および Adele Cutler が開発したランダム フォレスト アルゴリズムと、Tianqi Chen および Carlos Guestrin が開発した一般向けのブースティング方法である XGBoost という 2 つの教師付き機械学習方法のいずれかを使用して、モデルの作成と予測の生成が実行されます。

このフォレストベースのモデルを実行すると、独立した多数の決定木が作成されます。これらの決定木は、総称してアンサンブルまたはフォレストと呼ばれています。 各決定木は、トレーニング データと説明変数のランダムなサブセットから作成されます。 各決定木は、独自の予測を生成し、最終予測を行うための集約方法の一部として使用されます。 最終予測は、単一のツリーではなく、フォレスト全体に基づきます。 これにより、トレーニング データセットへのモデルの過剰適合を避けることができます。

この勾配ブースティング モデルを実行すると、一連の決定木が作成されます。 後続の各決定木は 1 つ前の決定木の誤差 (偏り) を最小限に抑えるよう作成されるため、勾配ブースティング モデルでいくつかの弱学習器が組み合わされて強力な 1 つの予測モデルになります。 勾配ブースティング モデルには、正規化と早期停止が導入されているので、トレーニング データセットへのモデルの過剰適合を避けることができます。

どちらのタイプのモデルも、カテゴリ変数 (バイナリ分類と複数クラス分類) または連続変数 (回帰) のいずれかを予測するように構築できます。 予測対象変数がカテゴリ変数の場合は、分類木に基づいてモデルが構築され、連続変数の場合は、回帰木に基づいてモデルが構築されます。

適用例

このツールは、次のような場合に適用できます。

  • 海草の存在に関するデータ、属性とラスターの両方で表される複数の環境説明変数、上流の工場と主要な港までの距離が与えられている場合は、同じ環境説明変数の将来予測に基づいて、将来の海草の存在を予測することができます。
  • 全国の数百軒の農場の作物収穫量のデータ、各農場の特性に関するデータ (従業員数や農業面積など)、各農場の傾斜角、標高、降雨量、気温を表す複数のラスターがあるとします。 これらのデータを使用して、作物収穫量を予測するモデルを作成することができます。 同じすべての説明変数を使用して、農場を表す一連のフィーチャをモデルに提供すると、各農場の作物収穫量を予測できます。
  • 今年販売された住宅の価格に基づいて、住宅の価格を予測できます。 住宅の販売価格と、寝室数、学校までの距離、主要な高速道路までの距離、平均収入、犯罪数などの情報を使用して、同様の住宅の販売価格を予測できます。
  • トレーニング データ、複数のラスター レイヤー (複数の個別バンドなど) の組み合わせ、および製品 (NDVI など) を使用して、土地利用タイプを分類できます。
  • 子供の血中の鉛濃度とその子供の家の課税パーセル ID に関する情報、家の築年数などのパーセルレベルの属性、収入や教育レベルなどの国勢調査レベルの情報、鉛と鉛化合物の有害物質排出を反映した全国規模のデータセットが提供されている場合は、血中の鉛濃度のデータなしでパーセルの鉛汚染のリスクを予測できます。 これらのリスク予測は、地域の警察や教育プログラムに影響する可能性があります。

モデルのトレーニング

[フォレストベースおよびブースト分類と回帰 (Forest-based and Boosted Classification and Regression)] ツールの使用における最初の手順は、予測のモデルをトレーニングすることです。 トレーニングにより、説明変数と [予測対象変数] パラメーターとのリレーションシップを確立するフォレストまたは一連の木が作成されます。 [トレーニングのみ][フィーチャに関する予測]、または [ラスターに関する予測] オプションを選択すると、このツールはまず、[予測対象変数] パラメーターと、[説明トレーニング変数][説明トレーニング距離フィーチャ]、および [説明トレーニング ラスター] (Spatial Analyst エクステンション ライセンスで使用可能) パラメーターの任意の組み合わせに基づいてモデルを構築します。

説明トレーニング変数

モデルをトレーニングする場合の説明変数の共通ソースは、[予測対象変数] パラメーターを含むトレーニング データセット内の他のフィールドです。 連続変数とカテゴリ変数のどちらを予測するかに関係なく、[説明トレーニング変数] 値の各フィールドは連続またはカテゴリです。 トレーニング済みモデルが予測にも使用されている場合、[説明トレーニング変数] に指定された各値は、トレーニング データセットと予測データセットの両方で使用可能でなければなりません。

説明トレーニング距離フィーチャ

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)] は空間機械学習ツールではありませんが、分析で空間の機能を活用する 1 つの方法として、距離フィーチャの使用があります。 たとえば、一連の小売店の業績をモデル化する場合は、高速道路の出入り口までの距離や最寄りの競合店までの距離を表す変数が正確な予測の生成に必要不可欠となることがあります。 同様に、大気環境をモデリングする場合、主な汚染源への距離や幹線道路までの距離を表す説明変数も重要です。 距離フィーチャを使用すると、入力されたフィーチャから [入力トレーニング フィーチャ] 値までの距離を計算して説明変数が自動的に作成されます。 [入力トレーニング フィーチャ] 値の各フィーチャから、入力された [説明トレーニング距離フィーチャ] 値の最近隣フィーチャまでの距離が算出されます。 入力された [説明トレーニング距離フィーチャ] 値にポリゴンまたはラインが含まれている場合、距離の属性は、フィーチャのペアの最も近いセグメント間の距離として算出されます。 ただし、ポリゴンとラインの場合、距離は別々に計算されます。 詳細については、「近接解析ツールによる距離の計算方法」をご参照ください。

説明トレーニング ラスター

[説明トレーニング ラスター] の値をモデルのトレーニングに使用することもできます。 これにより、画像、DEM、人口密度モデル、環境計測値、その他多くのデータ ソースをモデルで使用できるようになります。 連続変数とカテゴリ変数のどちらを予測するかに関係なく、[説明トレーニング ラスター] の各値は連続またはカテゴリです。 [説明トレーニング ラスター] パラメーターは、Spatial Analyst ライセンスを所有している場合のみ使用できます。

[入力トレーニング フィーチャ] 値のフィーチャがポイントの場合に、[説明トレーニング ラスター] 値を指定すると、このツールはドリル ダウンして、それぞれのポイント位置で説明変数を抽出します。 マルチバンド ラスターの場合は、最初のバンドだけが使用されます。 モザイク データセットの場合は、最初に [モザイク レイヤーの作成 (Make Mosaic Layer)] ツールを使用します。 [入力トレーニング フィーチャ] 値にポリゴンが含まれており、[予測対象変数] 値がカテゴリ変数の場合に、[説明トレーニング ラスター] 値を指定すると、[トレーニング用にポリゴンをラスター解像度に変換] パラメーターが有効になります。 このオプションをオンにすると、各ポリゴンは、重心がポリゴン内にある各ラスター セルの重心でポイントに分割され、これらのポリゴンが 1 つのポイント データセットとして扱われます。 続いて各ポイントのロケーションのラスター値が抽出され、モデルのトレーニングに使用されます。 モデルは、ポリゴンではなく、各セルの中心点について抽出されたラスター値でトレーニングされるようになります。 数値変数には共一次内挿法が使用され、カテゴリ変数には最近隣内挿法が使用されます。 変換されたポリゴンのデフォルトのセル サイズは、入力ラスターの最大セル サイズになります。 [セル サイズ] 環境設定を使用して、このサイズを変更できます。 [トレーニング用にポリゴンをラスター解像度に変換] パラメーターをオフにすると、各ポリゴンの 1 つのラスター値がモデル内で使用されます。 各ポリゴンには、連続ラスターの場合は平均値、カテゴリ ラスターの場合は最頻値が割り当てられています。

ポリゴンがラスター解像度に変換されるか (最初の画像)、ポリゴンに平均値が割り当てられます (2 番目の画像)。

モデルを使用して予測

初めに [トレーニングのみ] オプションを選択して、分析結果を評価し、必要に応じて使用されている変数と詳細パラメーターを調整することをお勧めします。適切なモデルができたら、このツールを再実行してフィーチャまたはラスターを予測します。 このツールを使用すると、最適なモデルを見つけることができます。 [最適化] パラメーターのチェックボックスをオンにして、[最適化モデル] パラメーター オプションを選択します。

パラメーターの最適化の詳細

予測に移る際には、[整合チェックから除外されたトレーニング データの %] パラメーターを 0 パーセントに変更して、予測に使用する最終モデルに利用可能なすべてのトレーニング データを含めることをお勧めします。 以下の方法で予測できます。

  • 同じ分析範囲での予測

    • 同じ分析範囲内のフィーチャを予測する場合は、関連する説明変数 (フィールド) をすべて、各予測フィーチャに含める必要があります。 フィーチャの範囲は、[説明トレーニング距離フィーチャ] 値と [説明トレーニング ラスター] 値の範囲と重なっていなければなりません。

    • 入力された [説明トレーニング ラスター] 値を使用して、同じ分析範囲内のラスターを予測する場合、予測ラスターの範囲はすべての説明ラスターの範囲と重なります。

  • 異なる分析範囲での予測

    • 異なる分析範囲内のフィーチャを予測する場合は、関連する説明変数 (フィールド)、説明距離フィーチャ、説明ラスターをすべて、各予測フィーチャに含める必要があります。 これらの新しい距離フィーチャとラスターは、新しい分析範囲に使用可能でなければならず、[説明トレーニング距離フィーチャ] 値と [説明トレーニング ラスター] 値に対応している必要があります。

    • 異なる分析範囲内のラスターを予測する場合は、新しい説明予測ラスターを入力し、対応する [説明トレーニング ラスター] 値と照合する必要があります。 結果として生成される [出力予測ラスター] 値の範囲は、入力されたすべての説明予測ラスターの範囲と重なります。

  • トレーニングに使用されている説明変数と将来の予測を含む変数を照合して別の期間を予測

    • 将来の特定期間に対する予測では、フィーチャかラスターかにかかわらず、予測される各説明予測変数 (フィールド、距離フィーチャ、およびラスター) は、対応する説明トレーニング変数に一致する必要があります。

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)] ツールは外挿を行わないので、[入力予測フィーチャ] 値の対応する説明変数フィールド、距離フィーチャ、および説明ラスターに、モデルのトレーニングに使用されている値の範囲またはカテゴリとは大幅に異なる値の範囲またはカテゴリを含めることができません。

フィーチャに関する予測

[説明トレーニング変数][説明トレーニング距離フィーチャ][説明トレーニング ラスター] パラメーター値の任意の組み合わせでトレーニングされたモデルを使用すると、同じ分析範囲または異なる分析範囲内のポイントやポリゴンを予測することができます。 フィーチャの予測では、予測を受け取るフィーチャごとに、モデルのトレーニングに使用されている各フィールド、距離フィーチャ、およびラスターの値を含める必要があります。

[入力トレーニング フィーチャ] 値と [入力予測フィーチャ] 値のフィールド名が一致しない場合は、[説明変数の照合] パラメーターが有効になります。 説明変数を照合する場合、[予測] パラメーターと [トレーニング] パラメーターの値として指定するフィールドは同じタイプにする必要があります。 たとえば、[入力トレーニング フィーチャ] 値の double フィールドと [入力予測フィーチャ] 値の double フィールドを一致させる必要があります。 異なる分析範囲または異なる期間を予測する場合は、モデルのトレーニングに使用されていない距離フィーチャまたはラスターを使用することができます。 [距離フィーチャの照合] パラメーターと [説明ラスターの照合] パラメーターが有効になります。

ラスターを予測

[説明トレーニング ラスター] のみを使用してトレーニングされたモデルを使用する場合、同じ分析範囲または異なる分析範囲のラスターを予測できます。 異なる分析範囲または異なる期間を予測する場合は、モデルのトレーニングに使用されていない予測ラスターを使用することができます。 [説明ラスターの照合] パラメーターが有効になります。 [出力予測ラスター] を Spatial Analyst ライセンスで作成するには、[予測タイプ] パラメーターの値として [ラスターに関する予測] を選択します。

モデルの評価

このツールでモデルを作成したら、作成したモデルを評価することができます。 このツールでは、モデルの特性を把握し、モデルのパフォーマンスを評価するのに役立つメッセージとチャートが作成されます。

ジオプロセシング メッセージ

このメッセージにアクセスするには、進行状況バーにマウス カーソルを合わせるか、ポップアウト ボタンをクリックするか、[ジオプロセシング] ウィンドウのメッセージ セクションを展開します。 ジオプロセシング履歴で、このツールの以前の実行に関するメッセージにアクセスすることもできます。 このメッセージには、モデルの特性、Out of Bag (OOB) エラー、変数の重要度、トレーニングと整合チェックの診断、説明変数範囲の診断に関する情報が示されています。

モデルの特性テーブル

[モデルの特性] テーブルには、フォレスト モデルまたはブースティング モデルのいくつかの重要な側面に関する情報が含まれています。これらの特性のうち、一部は [高度なモデル オプション] ドロップダウンのパラメーターで選択され、一部はデータ ドリブンです。 データ ドリブンのモデルの特性は、そのモデルのパフォーマンスを最適化するタイミングを把握する上で重要です。 [ツリー階層範囲] では、フォレストまたは一連の木で判明したツリー階層の最大深度と最低深度が報告されます。 最大深度は [最大ツリー階層] パラメーターで設定されていますが、最大値未満の深度も設定できます。 [平均ツリー階層] では、フォレストまたは一連の木で判明したツリー階層の平均深度が報告されます。 [最大ツリー階層] パラメーターが 100 に設定されている状況で、[ツリー階層範囲][平均ツリー階層] の値として、これより小さい数値が報告された場合は、最大ツリー階層の値を小さくすると、モデルのパフォーマンスが向上することがあります。これは、トレーニング データへのモデルの過剰適合が発生する可能性が少なくなるためです。 [ランダムにサンプリングされた変数の数] の値では、モデル内の特定ツリーで使用されている変数の中から、ランダムに選択された変数の数が報告されます。 各ツリーで、変数の組み合わせは異なりますが、変数の数は同じです。 デフォルトで、この数は、使用できるフィーチャの数と変数の数の組み合わせによって決まります。 回帰の場合は、説明変数の合計数の 1/3 (フィーチャ、ラスター、距離フィーチャを含む) になります。 分類の場合は、変数の総数の平方根になります。 [モデル タイプ] パラメーターが [フォレストベース] として指定されている場合、[モデルの特性] テーブル内の値は [ツリー数][リーフ サイズ][ツリー階層範囲][平均ツリー階層][ツリーあたりの利用可能なトレーニングの %][ランダムにサンプリングされた変数の数]、および [整合チェックから除外されたトレーニング データの %] になります。 [モデル タイプ] パラメーターが [勾配ブースティング] として指定されている場合は、[L2 正規化 (ラムダ)][分割の最小損失減少 (ガンマ)][学習率 (イータ)]、および [分割を検索するビンの最大数] の 4 つの値もテーブルに表示されます。

モデルの特性テーブル

モデルの Out of Bag エラー テーブル

[モデル タイプ] パラメーターが [フォレストベース] として指定されている場合は、ジオプロセシング メッセージにモデルの Out of Bag エラー テーブルが含まれます。 OOB エラーは、モデルの正確度を評価する際に役立ちます。 [平均二乗誤差 (MSE)][説明されたばらつきの %] はどちらも、モデルがトレーニング データセットの観測値に基づいて [予測対象変数] 値を正確に予測できるかどうかによって変わります。 OOB は、フォレスト内のツリーのサブセットごとには見えないトレーニング データセットの一部のデータを使用して計算された予測エラーです。 自分のデータを 100 パーセント使用してモデルをトレーニングしたい場合は、OOB に依拠してモデルの精度を評価します。 これらのエラーは、ツリーの数を増やすとモデルのパフォーマンスが向上するかどうかを評価するため、ツリーの数の半分が使用された場合と、ツリーの合計数が使用された場合について報告されます。 エラーおよび説明された変動の割合が両方のツリー数で近い値の場合、モデルのパフォーマンスへの影響を最小限にして、使用するツリー数を減らせることを示しています。 ただし、コンピューターの性能に適した数のツリーを使用することをお勧めします。 フォレスト内のツリーの数が多いほど、結果がより安定し、データとサンプリング方式のノイズの影響を受けにくいモデルになります。

連続変数の OOB エラー

予測対象変数がカテゴリ変数 ([変数をカテゴリとして処理] パラメーターの値で示される) の場合、OOB エラーは、フォレスト内のツリーのサブセットが表示されなかったツリー間の各カテゴリの不正な分類の割合に基づいて計算されます。 各カテゴリの不正な OOB 分類の割合は、ジオプロセシング メッセージに出力されます。 分類の MSE も出力され、全カテゴリ間の不正な OOB 分類の全体の割合として解釈されます。 [ツリー数] の値が小さい場合は、1 つ以上のカテゴリがデータのトレーニングに使用されない可能性があります。 この場合、OOB エラーは 100 パーセントになります。

カテゴリ変数の OOB エラー

上位変数の重要度テーブル

モデルのパフォーマンスに影響を及ぼすその他の要因は、使用されている説明変数です。 [上位変数の重要度] テーブルには、上位 20 の重要度スコアを持つ説明変数が表示されます。 変数の重要度は、どの変数がモデルの結果につながっているかを理解する上で役立つ診断です。 ベスト プラクティスは、最初にすべてのデータをトレーニングに使用し、それぞれの説明変数の重要度を確認することです。 変数の重要度を使用すると、有意であることが検出される説明変数だけを含むよりシンプル (簡素) なモデルを作成できます。

上位の変数の重要度テーブル
重要度列の値は、リストされている各変数のすべての木に含まれるジニ係数の合計です。 % 列の値は、ジニ係数の合計における割合です。

[モデル タイプ] パラメーターの値が [フォレストベース] の場合は、ジニ係数を使用して重要度が計算されます。これは、ある変数が分岐の原因となる回数、およびその分岐の影響をツリー数で除算した値と考えることができます。 各分岐は、決定木内の個々の決定です。

[モデル タイプ] パラメーターの値が [勾配ブースティング] の場合は、重要度 (ゲイン)、重要度 (加重)、重要度 (カバー) という 3 通りの方法で重要度が計算されます。 重要度 (ゲイン) は、モデルへの説明変数の相対的寄与度を表します。 重要度 (ゲイン) を計算するには、説明変数が使用されているすべての分岐のゲインを合計します。 重要度 (加重) は、すべての分岐で説明変数が使用された回数を表します。 重要度 (カバー) は、説明変数で定義されたすべての木における観測数を表します。 重要度 (カバー) は、ジオプロセシング メッセージに表示されませんが、[出力変数重要度テーブル] パラメーターが指定されている場合はテーブル内のフィールドになり、[変数の重要性のサマリー] チャートに表示することができます。 これら 2 つの出力には、[コンテンツ] ウィンドウからアクセスできます。 [検証の実行回数] の値が 1 より大きい場合、このツールは各反復処理で変数重要度のセットを計算します。 ジオプロセシング メッセージには、決定係数または正確度の中央値に最も近い決定係数または正確度を持つ反復処理の変数重要度のセットが表示されます。 変数重要度のすべてのセットを確認するには、[出力変数重要度テーブル] パラメーターの値を指定します。

勾配ブースティング モデル タイプを使用している場合の上位変数の重要度テーブル
モデル タイプ パラメーターの値が勾配ブースティングの場合の上位変数の重要度テーブルが表示されます。

検証データとトレーニング データの診断

モデルのパフォーマンスを評価するもう 1 つの重要な方法は、モデルを使用してフィーチャの値を予測した後、その予測値を観測値と比較して、診断を行うことです。 この処理は、トレーニング データとテスト (検証) データに対して実行されます。 デフォルトで、このツールは、[入力トレーニング フィーチャ] 値のフィーチャのうちの 10 パーセントをテストの対象外にします。 ただし、この内容は、[検証から除外されたトレーニング データの %] パラメーターを使用して制御することができます。 OOB のデメリットの 1 つは、フォレスト全体ではなく、フォレストのサブセット (トレーニング データセットの特定のフィーチャを使用していないツリー) を使用することです。 一部のデータを検証の対象外にすることで、モデル全体のエラー メトリクスを評価できます。 ジオプロセシング メッセージでは、検証データ診断テーブルとトレーニング データ診断テーブル内の診断内容が報告されます。 これらの診断は、データへのモデルの適合度を把握するのに役立ちます。

連続変数を予測する場合は、それぞれのトレーニング フィーチャとテスト フィーチャの観測値がトレーニング済みモデルに基づいてこれらのフィーチャの予測値と比較され、関連する [決定係数][平均絶対誤差 (MAE)][平均絶対パーセント誤差 (MAPE)][対称平均絶対パーセント誤差 (SMAPE)][二乗平均平方根誤差 (RMSE)][p 値]、および [標準誤差] の値がジオプロセシング メッセージで報告されます。 これらの診断は、トレーニング データセットとテスト データセットがランダムに選択されるため、トレーニング処理で実行するごとに変わります。 実行ごとに変わらないモデルを作成するには、[乱数ジェネレーター] 環境設定でシードを設定します。

連続変数を予測する場合のトレーニング データ診断テーブルと検証データ診断テーブル

カテゴリ変数を予測する場合は、[感度][正確度][F1 スコア]、および [MCC] がジオプロセシング メッセージで報告されます。 これらの診断は [出力分類パフォーマンス テーブル (混同行列)] パラメーターで指定されたテーブルを使用して計算されます。これらの診断から、対象カテゴリが正しく分類された回数、対象カテゴリが正しく分類されなかった回数、その他のカテゴリが対象カテゴリとして間違って分類された回数を追跡できます。 観測されたカテゴリを持つフィーチャがそのカテゴリで正しく予測された回数の割合として、各カテゴリの感度が報告されます。 たとえば、土地と水域を予測していて、土地の感度が 1.00 の場合、土地とマークが付けられたすべてのフィーチャが正しく測定されたことを示しています。 水域フィーチャが誤って土地とマーク付けされた場合、これは土地の感度に反映されません。 この場合は、水域フィーチャの 1 つが正しく予測されなかったため、水域の感度に反映されます。

精度の診断は、特定のカテゴリを持つフィーチャの予測の度合いと、その他のカテゴリが対象のカテゴリとして誤って分類される頻度の両方を考慮に入れます。 これにより、そのカテゴリの合計観測数の中から、そのカテゴリがどれくらいの頻度で正しく識別されているかを推測できます。 変数を 2 つのクラスだけで分類すると、精度の計測値は各クラスで同じになりますが、感度は異なります。 変数を 3 つ以上の変数で分類すると、感度と精度はクラスによって異なります。

カテゴリ変数を予測する場合のトレーニング データ診断テーブルと検証データ診断テーブル

診断説明

R2

相関係数の二乗は、近似性を計測するための基準です。 回帰モデルによって説明される従属変数の分散の比率と解釈できます。 値は 0.0 ~ 1.0 で変動し、値が大きいほど、より適切なモデルであると言えます。 説明変数の数を増やすと、必ず R2 が大きくなります。 この数の増加はモデルの適合度の向上には反映されず、R2 の計算方法に反映される可能性があります。

平均絶対誤差 (MAE)

MAE は、[対象変数] パラメーターの実際の値と予測値との絶対差の平均です。 値 0 は、モデルですべての観測値が正しく予測されたことを意味します。 MAE は対象変数の単位で表されるため、異なるモデル間で比較することができません。

平均絶対パーセント誤差 (MAPE)

MAPE は MAE によく似ていますが、実際の値と予測値の差を表します。 MAE は差を元の単位で表すのに対し、MAPE は差をパーセンテージで表します。 MAPE は相対誤差であるため、異なるモデルを比較する場合に適した診断です。 MAPE の計算方法では、実際の値が 0 の場合に MAPE を使用することができません。 実際の値が 0 に近い場合、MAPE は無限に大きくなります。 MAPE のもう 1 つの制限事項は、非対称であることです。 たとえば、実際の値と予測値の差が同じである 2 つのケースが存在する場合は、実際の値が小さいケースの方が、MAPE への寄与度が大きくなります。

対称平均絶対パーセント誤差 (SMAPE)

MAPE と同様、SMAPE も実際の値と予測値の差をパーセンテージで表しますが、SMAPE では、計算での非対称の問題が解消されます。

二乗平均平方根誤差 (RMSE)

RMSE は平均二乗誤差 (MSE) の平方根です。これは、実際の値と予測値の平均二乗差の平方根になります。 MAE と同様、RMSE も平均モデル予測誤差を対象変数の単位で表しますが、RMSE の方が大きい誤差の影響を強く受けます。 実際の値と予測値の差が大きいモデルにしたくない場合は、RMSE を使用してモデルを評価することができます。

p 値

P 値とは、観測値が予測値と相関していないという仮説の検証に使用される統計的計測値です。 p 値が 0.05 未満の場合は、観測値と予測値の相関が顕著になります。

標準誤差

回帰勾配の標準誤差です。 観測値が予測値から平均してどれだけ外れているかを表します。

F1 スコア

F1 スコアとは、モデルのパフォーマンスを示す計測値です。 各クラスに対して計算される、0 ~ 1 の値です。 F1 スコアが高いほど、モデルのパフォーマンスが優れていることを意味します。 すべてのクラスの F1 スコア (マクロ F1 スコア) は、個々のクラスの F1 スコアの平均です。 各クラス内のフィーチャの数が不均一の場合は、正確度よりも F1 スコアの方がモデルの評価に適した指標です。

F1 スコアは精度と再現率を最大限に引き上げます。 精度は、対象カテゴリが正しく分類された回数を、対象カテゴリが予測された合計回数で除算して求められます。 再現率は、対象カテゴリが正しく分類された回数を、対象カテゴリを含むフィーチャの数で除算して求められます。 F1 スコアは次のように計算されます。

F1 スコアの式

次の表では、クラス A は 25 回正しく分類され、30 回予測されたため (25 + 4 + 1)、クラス A の精度は 25/35 になります。 クラス A には 25 個のフィーチャがあるため (25 + 0 + 0)、クラス A の再現率は 25/25 です。 クラス A の F1 スコアは 0.909 です。

クラスA (予測)B (予測)C (予測)すべて

A (実際)

25

0

0

25

B (実際)

4

19

3

26

C (実際)

1

2

21

24

すべて

30

21

24

75

MCC

F1 スコアと同様に、MCC でも -1 ~ 1 の値を使用して混同行列が集計されます。 値 -1 は、モデルですべてのフィーチャが誤分類されたことを示し、値 1 は、モデルですべてのフィーチャが正しく分類されたことを示します。 F1 スコアとは異なり、MCC では、対象外のカテゴリが予測された回数も考慮されるため、モデルが対象カテゴリと対象外のカテゴリのどちらでも十分なパフォーマンスを発揮する場合にのみ、MCC の値が大きくなります。

感度

感度とは、観測されたカテゴリを持つフィーチャがそのカテゴリで正しく予測された回数の割合です。 対象クラスが正しく分類された回数を、対象クラスを含むフィーチャの数で除算して求められます。

次の表では、クラス A は 25 回正しく分類され、クラス A には 25 個のフィーチャがあるため (25 + 0 + 0)、クラス A の感度は 25/25 になります。

クラスA (予測)B (予測)C (予測)すべて

A (実際)

25

0

0

25

B (実際)

4

19

3

26

C (実際)

1

2

21

24

すべて

30

21

24

75

精度

精度とは、あるカテゴリの合計観測数のうち、そのカテゴリが正しく識別された回数です。 精度では、特定のカテゴリを持つフィーチャの予測の度合いと、その他のカテゴリが対象カテゴリではないとして正しき識別される頻度の両方が考慮されます。 精度は次のように計算されます。

精度の式

ここで、TP は真陽性、TN は真偽性、FP は偽陽性、FN は偽陰性を意味します。

次の表では、クラス A の TP は 25、TN は 45 (19 + 3 + 2 + 21)、FP は 5 (4 + 1)、FN は 0 (0 + 0) です。 クラス A の精度は 70/(25+45+5+0) = 0.93 です。 すべてのクラスの精度は (25 + 19 +21)/75 = 0.866 です。

クラスA (予測)B (予測)C (予測)すべて

A (実際)

25

0

0

25

B (実際)

4

19

3

26

C (実際)

1

2

21

24

すべて

30

21

24

75

ジオプロセシング メッセージで提供される指標であり、モデルのパフォーマンスの評価に役立ちます。

説明変数範囲診断テーブル

説明範囲診断は、トレーニング、検証、予測に使用された値が適切なモデルの生成に十分かどうかと、他のモデル診断を信頼できるかどうかを評価するのに役立ちます。 モデルのトレーニングに使用されるデータは、生成される分類および予測の品質に大きな影響を及ぼします。 トレーニング データが、モデリング対象のデータを代表するのが理想的です。 デフォルトでは、[入力トレーニング フィーチャ] 値のフィーチャのうちの 10 パーセントがランダムに検証の対象外になります。 この結果として、トレーニング データセットと検証データセットが生成されます。 [説明変数範囲診断] テーブルには、これらのデータセットの最小値と最大値が表示され、フィーチャまたはラスターの予測の場合は、予測に使用されたデータの最小値と最大値も表示されます。

説明変数範囲診断テーブル

サブセットの決定方法がランダムであるため、トレーニング サブセット内の変数の値が [入力トレーニング フィーチャ] 値の全体的な値を表していない可能性があります。 各連続説明変数で、[共有] グループ内の [トレーニング] 列は、[入力トレーニング フィーチャ] 値でトレーニング サブセットの値の範囲とすべてのフィーチャの値の範囲が重複している割合を示します。 たとえば、[入力トレーニング フィーチャ] の変数 A の値が 1 ~ 100 であり、トレーニング サブセットの値が 50 ~ 100 である場合、[共有] グループ内の [トレーニング] 列の変数 A の値は 0.50 (つまり 50%) になります。 変数 A では、[入力トレーニング フィーチャ] の値の範囲のうちの 50% がトレーニング サブセットに含まれます。 トレーニング サブセットがモデル内の各説明変数で [入力トレーニング フィーチャ] の広範な値をカバーしない場合は、他のモデル診断で偏りが生じる可能性があります。 同様の計算を実行して、テーブルの [共有] グループ内の [検証] 列を生成します。 モデルの検証に使用された値の範囲が、モデルのトレーニングに使用された値の範囲をできるだけ多くカバーしていることが重要です。 たとえば、トレーニング サブセットの変数 B の値が 1 ~ 100 であり、検証サブセットの値が 1 ~ 10 である場合、[共有] グループ内の [検証] 列の変数 B の値は 0.10 (つまり 10%) になります。 このように値の範囲が小さいと、すべてが低い値またはすべてが高い値となる可能性があるため、他の診断で偏りが生じます。 検証サブセットが保持している値がすべて低い値である場合、他のモデル診断 (MSE や説明されたばらつきの割合など) は、モデルが [入力トレーニング フィーチャ] の値の完全な範囲ではなく、低い値をどれだけ適切に予測できるかを報告します。 また、値が 1 より大きい場合は、検証に使用されている値の範囲が、トレーニング サブセット内の値の範囲よりも大きいことを示します。 この場合、ランダム フォレスト アルゴリズムと極端な勾配ブースティング アルゴリズムは外挿を実行できないので、検証診断で十分な結果が得られません。

[説明変数範囲診断] テーブルの [共有] グループ内の [予測] 列は特に重要です。 フォレストベース モデルと勾配ブースティング モデルは外挿を行わず、モデルがトレーニングされた範囲内の値の分類または予測のみ実行できます。 [共有] グループ内の [予測] 列は、トレーニング データの値の範囲と予測データの値の範囲が重複している割合を表します。 値が 1 の場合、トレーニング サブセット内の値の範囲と予測に使用されている値の範囲が等しいことを示します。 値が 1 より大きい場合は、予測に使用されている値の範囲が、トレーニング サブセット内の値の範囲よりも大きいことを示します。 また、モデルがトレーニングされなかった値の予測を実行しようとしていることも示します。

3 つの共有診断がすべて有効になるのは、サブセットの範囲が一致している場合に限ります。 たとえば、変数 C の整合チェック サブセットが 1 ~ 100 の値を持ち、トレーニング サブセットが 90 ~ 200 の値を持っていた場合、それらは 10% 重複しますが、一致範囲を持ちません。 この場合、診断に非一致範囲を示すアスタリスクが付けられます。 最小値と最大値を調べ、非重複の範囲と方向を確認します。 モデルがトレーニング データの範囲外で予測しようとしている場合は、[共有] グループ内の [予測] 列にプラス記号 (+) が表示されます。

[説明変数範囲診断] テーブルの許容可能な値には、絶対的な規則がありません。 トレーニング データの制約を考慮すると、[共有] グループ内の [トレーニング] 列と [検証] 列の値をできるだけ大きくする必要があります。 [共有] グループ内の [検証] 列の値が小さい場合は、[検証から除外されたトレーニング データの %] パラメーターの値を大きくすることを検討してください。 [共有] グループ内の [予測] 列は、できるだけ 1 に近い値にする必要があります。 [共有] グループ内の [予測] 列の値が小さい場合は、[検証から除外されたトレーニング データの %] パラメーターの値を小さくすることを検討してください。 また、モデルを複数回実行して、範囲診断の最適値のバランスが得られる実行を選択することも検討します。 各実行で使用されたランダム シードは、メッセージで報告されます。

追加出力

[フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression)] ツールでは、さまざまなテーブル、チャート、および出力も生成されます。

出力トレーニング済みフィーチャ

[出力トレーニング済みフィーチャ] には、すべての [入力トレーニング フィーチャ] (トレーニング データセットとテスト (検証) データセットを含む)、モデルで使用されている [説明トレーニング変数]、および予測値が含まれます。 予測対象変数が連続変数の場合は、[残差] フィールドと [標準化残差] フィールドが出力に含まれます。 予測対象変数がカテゴリ変数の場合は、[正しく分類] フィールドが出力に含まれます。 モデルが既知のカテゴリを正しく予測すると、そのフィーチャに [正しく分類] というラベルが付けられ、それ以外の場合は、そのフィーチャに [誤分類] というラベルが付けられます。 回帰モデルの場合、トレーニング済みフィーチャは、予測の標準化残差でシンボル表示されます。 分類の場合、トレーニング済みフィーチャのシンボルは、フィーチャが正しく分類されているかどうかに基づきます。

出力トレーニング済みフィーチャのフィールドには、[説明トレーニング ラスター] 変数ごとに抽出されたラスター値と [説明トレーニング距離フィーチャ] 変数ごとに計算された距離値が含まれます。 それらの新しいフィールドを使用すると、毎回ラスター値を抽出して距離値を計算せずに、分析のトレーニング部分を返すことができます。 [出力トレーニング済みフィーチャ] 値には、トレーニングに使用されているフィーチャとテストの対象外となっているフィーチャを含め、すべてのフィーチャの予測も含まれます。 この予測は、モデルのパフォーマンスの評価に役立ちます。 [出力トレーニング済みフィーチャ]trained_features フィールドには、フィーチャがトレーニングに使用されたかどうかが示されます。

予測対象変数がカテゴリ変数の場合は、[出力トレーニング済みフィーチャ] に次のチャートが含まれます。

  • [予測パフォーマンス] - 積み上げバー チャート。 各バーは予測されたカテゴリを表し、サブバーの色は実際のカテゴリを表します。 サブバーのサイズは、予測クラス内にある実際のクラスのフィーチャの割合を表します。 たとえば、右側のバーには、種 2 として予測されたフィーチャのうちの 5.66% が実際のカテゴリの種 1 であることが示されています。

    予測パフォーマンス チャート

  • [混同行列] - マトリックス ヒート チャート。 X 軸は [入力トレーニング フィーチャ] 値のフィーチャの予測されたカテゴリを表し、Y 軸は実際のカテゴリを表します。 対角線セルでは、モデルがカテゴリを正しく予測した回数が視覚化されます。 対角線セルの数が多いほど、モデルのパフォーマンスが十分であることを示します。 このチャートは、[変数をカテゴリとして処理] パラメーターがオンの場合にのみ生成されます。

    混同行列チャート

どちらのチャートにも、トレーニング データとテスト データが含まれている点に注意してください。 トレーニング データへのモデルの適合度を評価するには、trained_features フィールドが 1 に設定されているフィーチャを選択して、このチャートを再生成します。 テスト データに対するモデルのパフォーマンスの度合いを評価するには、trained_features フィールドが 0 に設定されているフィーチャを選択して、このチャートを再生成します。

出力変数重要度テーブル

[出力変数重要度テーブル] 値には、モデルで使用されている説明変数とその重要度が含まれます。

出力変数重要度テーブル
フォレストベース モデル タイプを使用している場合の出力変数重要度テーブルを示します。

出力変数重要度テーブル
出力変数重要度テーブル勾配ブースティング モデル タイプを使用している場合の出力変数重要度テーブルを示します。

[出力変数重要度テーブル] パラメーターを指定した場合に、[検証の実行回数] の値が 1 に設定されていると、このツールから [変数の重要性のサマリー] チャートも出力されます。 [モデル タイプ] パラメーターの値が [フォレストベース] オプションの場合は、チャートの Y 軸にモデルで使用されている変数が表示され、X 軸にジニ係数に基づく重要度が表示されます。 [モデル タイプ] パラメーターの値が [勾配ブースティング] オプションの場合は、X 軸にゲイン値に基づく重要度が表示されます。 説明変数は重要度の順に表示され、重要度が最も高い変数が一番上、最も低い変数が一番下になります。

[変数の重要性のサマリー] チャート

[出力変数重要度テーブル] パラメーター値を指定した場合に、[検証の実行回数] の値が 1 より大きいと、[出力変数重要度テーブル] の値に実行ごとの各説明変数の重要度が含まれ、反復処理が最も高い正確度または R2 で示されます。 ジオプロセシング メッセージに出力される変数重要度のセットは、最適な決定係数または正確度のセットではなく、R2 または正確度が R2 または正確度の中央値に最も近いセットになります。

検証の複数実行を使用している場合の出力変数重要度テーブル。

また、[検証の実行回数] の値が 1 より大きい場合は、このツールから [変数の重要性の分布] チャートが出力されます。 この箱ひげ図を使用して、実行ごとの変数重要度の変化を評価します。

変数の重要性の分布チャート

箱ひげ図には、整合チェックのすべての実行にわたる変数重要度の値の分布が表示されます。 変数重要度の分布は、トレーニング済みモデルの安定性を示します。 変数重要度が整合チェックの実行にわたって大きく変化している場合は、モデルが不安定になっている可能性があります。 不安定なモデルは、多くの場合、[ツリー数] パラメーターの値を大きくして、データ内のより複雑なリレーションシップを取得することで改善できます。

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

予測対象変数がカテゴリ変数の場合は、[出力分類パフォーマンス テーブル (混同行列)] パラメーターが使用可能になります。 このテーブルには、[検証から除外された入力トレーニング フィーチャ] 値のすべてのフィーチャが含まれます。 各行は実際のカテゴリを表し、各列は予測されたカテゴリを表します。 このテーブルでは、真陽性 (TP)、真陰性 (TN)、偽陽性 (FP)、および偽陰性 (FN) の数がカテゴリごとに表示され、正確度や感度など、いくつかの分類診断を行うことができます。

予測の出力

このツールを使用してフィーチャを予測する場合、[出力予測済みフィーチャ] に指定された値は、フィーチャごとのモデルの予測値を含むフィーチャクラスになります。 ラスターを予測する場合、[出力予測サーフェス] に指定された値は、予測結果を含む出力ラスターになります。

高度なモデル オプション

フォレストベース手法の強みの 1 つは、弱い予測因子 (ツリー) の共通性をとらえることにあります。 ツリーごとに常にある関係がとらえられる場合、モデルが複雑でない場合でも検出できる強い関係がデータに存在していることを示しています。 フォレストベース モデルと勾配ブースティング モデルのもう 1 つの強みは、弱い予測因子 (個別の木や一連の木) を組み合わせて 1 つの強い予測因子を作成することにあります。 モデル パラメーターを調整すると、結果として強力なモデルを得られる多数の弱い予測因子を作成することができます。 各ツリーではより少ない情報量で弱い予測因子を作成できます。 これには、ツリーあたりのフィーチャの小さいサブセット、ツリーあたりの少ない数の変数、少ないツリー階層、またはこれらの任意の組み合わせを使用します。 ツリー数は、それらの弱い予測因子の作成数を制御します。予測因子 (ツリー) が弱いほど、強力なモデルを作成するためにより多くのツリーが必要になります。

このツールでは、次に示す高度なトレーニング オプションと検証オプションを選択できます。

  • [ツリーの数] パラメーターのデフォルト値は 100 です。 フォレスト モデルまたはブースティング モデルでツリーの数を増やすと、通常、モデルの予測の正確度は増しますが、モデルの計算に時間がかかるようになります。 [ツリーの数] パラメーターの値が 0 の場合は、モデルが作成されず、[出力トレーニング済みフィーチャ] 値に、[入力トレーニング フィーチャ] 値と指定された [説明トレーニング変数] 値から取得されたフィーチャだけが含まれます。 
  • 最小リーフ サイズはリーフ (ツリー上の終点ノード) を維持するのに必要な最小観測数です。 デフォルト値は、回帰の場合には 5、分類の場合には 1 になります。 非常に大規模なデータセットの場合は、[最小リーフ サイズ] の値を大きくすると、このツールの実行時間が短縮されます。 [最小リーフ サイズ] の値が小さい (最小値に近い) 場合、モデルはデータ内のノイズの影響を受けやすくなります。 より安定したモデルにするために、[最小リーフ サイズ] の値を大きくして検証します。
  • 最大ツリー階層は、ツリーが下に伸びる分岐の最大数です。 大きい最大階層を使用すると、より多くの分割が作成され、モデルを過剰適合する可能性が増加する場合があります。 フォレストベース モデルのデフォルト値は、データ ドリブンであり、作成されるツリー数と含まれる変数の数によって異なります。 勾配ブースティング モデルのデフォルト値は 6 です。 勾配ブースティング モデルを使用する場合は、[最大ツリー階層] の値を小さくすることをお勧めします。 [最小リーフ サイズ] の値に達した後で、ノードを分岐することはできない点に注意してください。 [最小リーフ サイズ] パラメーターと [最大ツリー階層] パラメーターの両方の値が設定されている場合は、ツリー階層の決定に [最小リーフ サイズ] の値が優先的に使用されます。
  • [ツリーあたりの利用可能なデータ (%)] パラメーターには、各決定木で使用される [入力トレーニング フィーチャ] 値のフィーチャの割合を指定します。 デフォルトはデータの 100% です。 モデル内の各決定木は、使用可能なトレーニング データのランダムなサブセット (約 2/3) を使用して作成されます。 各決定木の入力データの割合を低くすると、大規模なデータセットの場合のこのツールの実行速度が上がります。
  • [ランダムにサンプリングされた変数の数] パラメーターには、各決定木の作成に使用される説明変数の数を指定します。 モデル内の各決定木は、指定された説明変数のランダムなサブセットを使用して作成されます。 各決定木で使用される変数の数を増やすと、特に 1 つのドミナント変数がある場合は、モデルを過剰適合する可能性が増加します。 一般的な方法 (およびこのツールでデフォルトとして使用されている方法) では、[予測対象変数] 値が数値フィールドの場合は、説明変数 (フィールド、距離フィーチャ、およびラスター) の合計数の平方根を使用し、予測対象変数がカテゴリ変数の場合は、説明変数 (フィールド、距離フィーチャ、およびラスター) の合計数を 3 で除算します。
  • [モデル タイプ] パラメーターの値が [勾配ブースティング] オプションの場合は、[高度なモデル オプション] パラメーター カテゴリに含まれる次のパラメーターを使用できます。
    • [L2 正規化 (ラムダ)] - 予測の感度を個々のフィーチャまで下げる正規化手法です。 この値を大きくすると、モデルがより保守的になるため、過剰適合を防止することができます。 デフォルトは 1 です。 値が 0 の場合は、モデルが従来の勾配ブースティングになります。
    • [分割の最小損失減少 (ガンマ)] - ツリーの分割に必要な最小損失削減の閾値。 分割候補の損失削減がこの値よりも大きい場合は、パーティション化が行われます。 [分割の最小損失減少 (ガンマ)] の値を大きくすると、ツリー階層が大きくなりすぎることがなくなり、トレーニング データへのモデルの過剰適合を防止できます。 デフォルトは 0 です。
    • [学習率 (イータ)] - 最終的な予測への各ツリーの寄与度を下げる値。 学習率の値を小さくすると、モデルの過剰適合は防止できますが、計算時間が長くなる可能性があります。デフォルト値は 0.3 です。 0 より大きく 1 以下の数値を指定できます。 
    • [分割を検索するビンの最大数] - 分割ポイントを検索するためにバケットでデータを入れるビンの数を定義します。 デフォルト値は 0 に設定されます。 この場合には、すべてのデータ ポイントで分割候補を作成するグリーディ アルゴリズムが使用されます。 グリーディ アルゴリズムを使用すると、計算時間が長くなることがあります。 [分割を検索するビンの最大数] の値を小さくすると、データが少数のバケットに分割されるため、テスト対象の分割の数が少なくなります。 値を小さくした場合、計算時間は短縮されますが、予測のパフォーマンスが低下することがあります。 値を大きくすると、データが多数のビンに分割されるため、テスト対象の分割の数が多くなります。 値を大きくした場合、モデルのパフォーマンスは向上しますが、計算時間が長くなることがあります。 値 1 は使用できません。
  • [検証から除外されたトレーニング データの %] パラメーターでは、[入力トレーニング フィーチャ] 値の割合 (10 ~ 50 パーセント) を指定し、検証対象のテスト データセットとして確保します。 モデルは、このランダムなデータのサブセットを除いてトレーニングされます。これらのフィーチャの観測値は、モデルのパフォーマンスを検証するために予測値と比較されます。 デフォルトは 10 パーセントです。
  • [不確実性の計算] パラメーターは、[モデル タイプ] パラメーターの値が [フォレストベース] オプションであり、予測対象変数がカテゴリ変数でない場合にのみ使用できます。 [不確実性の計算] パラメーターをオンにすると、このツールは各予測値の周りの 90 パーセントの予測間隔を計算します。 [予測タイプ] の値が [トレーニングのみ] オプションまたは [フィーチャに関する予測] オプションの場合は、[出力トレーニング済みフィーチャ] 値または [出力予測フィーチャ] 値に 2 つのフィールドが追加されます。 これらのフィールドは、予測間隔の上限と下限を表します。 新しい観測の場合、同じ説明変数を指定すると、新しい観測が間隔内に含まれることを 90 パーセントの信頼度で予測できます。 ラスターを予測する場合は、予測間隔の上限と下限を表す 2 つのラスターが [コンテンツ] ウィンドウに追加されます。 予測間隔は、分位点回帰フォレストを使用して計算されます。 分位点回帰フォレストでは、フォレストから最終的な予測が保持されるだけでなく、フォレストの各リーフから取得された予測値が保存され、予測値の分布を構築するために使用されます。

パラメーターの最適化

フォレストベース モデルと勾配ブースティング モデルには、モデルの調整に使用できる複数のハイパーパラメーターがあります。 一方で、特定のデータセット向けのハイパーパラメーターごとに最適な値を選択することが困難な場合があります。 フォレストベースおよびブースト分類と回帰分析 (Forest-based and Boosted Classification and Regression) ツールには、ハイパーパラメーター値のさまざまな組み合わせをテストして、モデルのパフォーマンスを最適にする一連のハイパーパラメーターを特定する最適化方法がいくつか用意されています。 ハイパーパラメーターに使用する値がわからない場合に、最適化方法を使用してください。 最適化方法には、[ランダム サーチ (クイック)][ランダム サーチ (ロバスト)]、および [グリッド サーチ] の 3 つがあります。

パラメーターの最適化を使用するには、[パラメーターの最適化] チェックボックスをオンにして、[最適化モデル] オプションを選択します。 [最適化モデル] パラメーターのデフォルト値は [ランダム サーチ (クイック)] です。 このツールには、選択した一連のハイパーパラメーター値でモデルのパフォーマンスを評価するのに使用される目的関数のオプションもいくつか用意されています。 予測対象変数がカテゴリ変数でない場合は、[ターゲットの最適化 (目的)] パラメーターに [決定係数] および [RMSE] という 2 つのオプションが含まれます。 デフォルト値は [決定係数] です。 予測対象変数がカテゴリ変数の場合は、[正確度][マシューズ相関係数 (MCC)]、および [F1 スコア] オプションが含まれます。 デフォルト値は [正確度] です。 [モデル パラメーター設定] パラメーターでは、上限、下限、およびハイパーパラメーターの検索空間を定義する間隔を設定します。 [最適化モデル] パラメーターの値が [グリッド サーチ] の場合、このツールは、検索空間内にある検索ポイントをすべて検索し、モデルのパフォーマンスを最適にする一連のハイパーパラメーター値を選択します。 [最適化モデル] パラメーターの値が [ランダム サーチ (クイック)] または [ランダム サーチ (ロバスト)] の場合は、[パラメーター セットの実行回数] パラメーターが有効になります。 このパラメーターは、検索対象となる検索空間内の検索ポイントの数を決定する場合に使用します。 [ランダム サーチ (ロバスト)] 方法では、検索ポイントごとに、異なる 10 個のランダム シードを使用してモデルを構築し、モデルのパフォーマンスが中央値になる一連のハイパーパラメーター値を選択して、次の検索ポイントに移動します。 候補となるすべての検索ポイントが検索されるまで、この処理が繰り返されます。 最後に、モデルのパフォーマンスが最適になる一連のハイパーパラメーター値が選択されます。

最適化モデル オプションの図

ハイパーパラメーターを最適化する場合は、[出力パラメーター調整テーブル] パラメーターが使用可能になります。 [出力パラメーター調整テーブル] 値には、検索済みのすべてのハイパーパラメーター値が表示され、次のチャートが示されます。

  • [最適化の履歴 (全トライアル)] - 最適化の履歴を視覚化するチャート。

    最適化の履歴チャート

  • [モデル パラメーターのパフォーマンス] - モデルのパフォーマンスへの各ハイパーパラメーターの寄与度を評価するのに役立つチャート。

    モデル パラメーターのパフォーマンス チャート
    この例では、ラムダ値とガンマ値が大きいほど、モデルの正確度が高くなり、学習率が低いほど、モデルの正確度が高くなります。

ベスト プラクティス

このツールを使用する際のベスト プラクティスを次に示します。

  • このツールは、モデルのトレーニングに使用されている説明変数の範囲外の説明変数で予測しようとすると、十分なパフォーマンスを発揮しない可能性があります。 フォレストベース モデルとブースティング モデルは外挿を行わず、モデルがトレーニングされた値の範囲の分類または予測のみ実行できます。 元のトレーニング データセットの範囲をはるかに上回る/下回る説明変数を使用して予測を行うと、このモデルでは、元のデータセットの最大値または最小値に近い値が推定されます。
  • [説明トレーニング ラスター] 値から値を抽出する場合や [説明トレーニング距離フィーチャ] パラメーターを使用して距離を計算する場合のパフォーマンスを上げるには、検証対象のデータを除外せずにすべてのデータでモデルをトレーニングすることを検討し、[出力トレーニング済みフィーチャ] 値を作成するようにしてください。 このツールを次回実行する際に、[出力トレーニング済みフィーチャ] 値を [入力トレーニング フィーチャ] パラメーターの値として使用し、モデルをトレーニングするごとに抽出するのではなく、抽出されたすべての値と距離を [説明トレーニング変数] 値として使用します。 これを行うには、[ツリーの数][最大ツリー階層]、および [ランダムにサンプリングされた変数の数] パラメーターの値を 1 に設定し、非常に小さいプレースホルダー ツリーを作成して分析対象のデータをすばやく準備します。
  • パフォーマンス上の理由から、[予測タイプ] パラメーターの値が [ラスターに関する予測] の場合は、[説明トレーニング距離フィーチャ] パラメーターを使用できません。 フィーチャへの距離を説明変数として含めるには、[距離累積 (Distance Accumulation)] ツールを使用して距離ラスターを計算し、[説明トレーニング ラスター] パラメーターに距離ラスターを入力します。
  • [ツリーの数] パラメーターのデフォルト値は 100 ですが、この数値はデータ ドリブンではありません。 必要なツリー数は、説明変数、データセットのサイズ、予測対象変数の関係の複雑さと、これらの変数の変動に伴って多くなります。
  • フォレスト内のツリーの数を増やし、OOB または分類エラーを記録します。 モデルのパフォーマンスを最適に評価するために、[ツリーの数] の値を少なくとも 3 倍、少なくとも 500 ツリーまで増やすことをお勧めします。
  • ツールの実行時間は、ツリーごとに使用される変数の数によって大きく異なります。 ツリーごとに使用する変数の数を少なくすると、過剰適合の可能性が低くなります。 ただし、モデルのパフォーマンスを上げることを目的としてツリーごとに使用する変数の数を少なくしている場合は、使用するツリーの数を多くしてください。

    勾配ブースティング モデル タイプを使用している場合は、ツールの実行時間が [分割を検索するビンの最大数] パラメーターの値の影響を大きく受けます。 [ビンの数] パラメーターのデフォルト値は 0 であり、この場合には、グリーディ アルゴリズムが使用されます。 このアルゴリズムでは、すべてのデータ ポイントで分割候補が作成されるため、実行時間が長くなることがあります。 このため、データのサイズが大きい場合や最適化の検索ポイントが多数存在する場合は、[検索分割のビンの数] パラメーターに妥当な値を使用することを検討してください。

  • 実行ごとに変わらないモデルを作成するには、乱数ジェネレーター環境設定でシードを設定します。 モデルにランダム性は残りますが、そのランダム性は実行ごとに変わりません。
  • 変数の重要度は、どの変数がモデルの結果につながっているかを理解する上で役立つ診断です。 モデルの予測の度合いを計るものではありません。 ベスト プラクティスは、[検証から除外されたトレーニング データの %] の値を 0 に設定し、変数重要度の箱ひげ図を探索して、トレーニングに関するすべてのデータを使用することです。 次に、[ツリー数][最大ツリー階層] などの他のパラメーターを変更し、安定したモデルになるまで箱ひげ図を探索します。 変数重要度の点で安定したモデルのトレーニングが終了したら、[検証から除外されたトレーニング データの %] の値を大きくして、モデルの正確度を判定できます。 指定したモデルがフォレストベース モデルの場合は、診断メッセージで OOB エラーがないかを調べて、モデルの正確度を判定します。 安定した変数重要度があり、かつ正確度の高いモデルになったら、[検証の実行数] の値を 1 に設定して、モデルの最終的な変数重要度を示す 1 つのバー チャートを取得することができます。

参考文献

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.

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,. 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.