アウトオブバッグ評価

ランダム フォレストには検証データセットは必要ありません。ほとんどのランダム フォレストは、アウトオブバッグ評価OOB 評価)と呼ばれる手法を使用してモデルの品質を評価します。OOB 評価では、トレーニング セットがクロス バリデーションのテストセット上にあるかのように扱われます。

前述のように、ランダム フォレストの各ディシジョン ツリーは通常、トレーニング サンプルの約 67% でトレーニングされます。したがって、各ディシジョン ツリーはトレーニング例の約 33% を参照しません。OOB 評価の基本的な考え方は次のとおりです。

  • トレーニング セットでランダム フォレストを評価します。
  • 各例に対して、トレーニング中に例を見なかったディシジョン ツリーのみを使用します。

次の表は、6 つのサンプルでトレーニングされた 3 つのディシジョン ツリーを含むランダム フォレストの OOB 評価を示しています。(これは、バギング セクションの表と同じです)。この表は、OOB 評価中にどのサンプルでどのディシジョン ツリーが使用されているかを示しています。

表 7. OOB 評価 - 数字は、特定の例のトレーニング中に特定のトレーニング サンプルが使用された回数を表します。

トレーニング サンプル OOB 評価の例
#1 #2 #3 #4 #5 #6
元のデータセット 1 1 1 1 1 1
ディシジョン ツリー 1 1 1 0 2 1 1 #3
ディシジョン ツリー 2 3 0 1 0 2 0 #2、#4、#6
ディシジョン ツリー 3 0 1 3 1 0 1 1 と 5

表 7 の例では、トレーニング例 1 の OOB 予測はディシジョン ツリー #3 で計算されます(ディシジョン ツリー #1 と #2 はこの例をトレーニングに使用したため)。実際には、適度なサイズのデータセットといくつかのディシジョン ツリーでは、すべてのサンプルに OOB 予測があります。

YDF コード
YDF では、モデルが compute_oob_performances=True でトレーニングされている場合、トレーニング ログで OOB 評価を使用できます。

OOB 評価は、ランダム フォレスト モデルの置換変数の重要度を計算する場合にも効果的です。変数の重要度で説明したように、Permutation Variable Importance は、この変数がシャッフルされたときのモデル品質の低下を測定して、変数の重要度を測定します。ランダム フォレストの「OOB 置換変数の重要度」は、OOB 評価を使用して計算された置換変数の重要度です。

YDF コード
YDF では、モデルが compute_oob_variable_importances=True でトレーニングされている場合、OOB 並べ替え変数の重要度はトレーニングログで確認できます。