web-dev-qa-db-ja.com

ランダムフォレストのアウトオブバッグエラーとは何ですか?

ランダムフォレストのアウトオブバッグエラーとは何ですか?ランダムフォレストで適切な数のツリーを見つけるための最適なパラメーターですか?

53
csalive

私は説明しようとします:

トレーニングデータセットがTで表され、データセットにM個の機能(または属性または変数)があると仮定します。

T = {(X1,y1), (X2,y2), ... (Xn, yn)}

そして

Xi is input vector {xi1, xi2, ... xiM}

yi is the label (or output or class). 

rFの概要:

ランダムフォレストアルゴリズムは、主に2つの方法に基づいた分類器です。

  • バギング
  • ランダム部分空間法。

フォレスト内にS個のツリーを配置することにした場合、まず、T with-replacementのデータのランダムリサンプリングから作成された"same size as original"Sデータセットを作成します(各データセットに対してn回)。これにより、{T1, T2, ... TS}データセットが作成されます。これらはそれぞれbootstrapデータセットです。 "with-replacement"により、すべてのデータセットTiには重複するデータレコードがあり、Tiには元のデータセットから複数のデータレコードがありません。これはBootstrappingと呼ばれます。 (en.wikipedia.org/wiki/Bootstrapping_(statistics))

バギングは、ブートストラップを取得してから、各ブートストラップで学習したモデルを集約するプロセスです。

ここで、RFはSツリーを作成し、M可能性のある機能からm (=sqrt(M) or =floor(lnM+1))ランダムサブ機能を使用して任意のツリーを作成します。これはランダムサブスペースメソッドと呼ばれます。

したがって、各Ti bootstrapデータセットでは、ツリーKiを作成します。入力データD = {x1, x2, ..., xM}を分類する場合は、各ツリーを通過させ、各ツリーに1つ)S出力を生成しますY = {y1, y2, ..., ys}で示されています。最終的な予測は、このセットに対する多数決です。

アウトオブバッグエラー:

分類子(Sツリー)を作成した後、元のトレーニングセット(T)の各(Xi,yi)に対して、(Xi,yi)を含まないすべてのTkを選択します。このサブセットは、注意を払って、元のデータセットの特定のレコードを含まないブーストラップデータセットのセットです。このセットはout-of-bagの例と呼ばれます。 nそのようなサブセットがあります(元のデータセットTの各データレコードに1つ)。 OOB分類子は、(xi,yi)を含まない、Tkに対する投票のみの集計です。

一般化エラーのout-of-bag推定値は、トレーニングセットのout-of-bag分類器のエラー率です(既知のyiと比較してください)。

どうしてそれが重要ですか? Breiman [1996b]のバギングされた分類器の誤差推定の研究は、アウトオブバッグ推定がトレーニングセットと同じサイズのテストセットを使用するのと同じくらい正確であることを示す経験的証拠を与えます。したがって、out-of-bagのエラー推定値を使用すると、テストセットを別に用意する必要がなくなります。

(訂正してくれた@Rudolfに感謝します。彼のコメントは以下のとおりです。)

132
Manoj Awasthi

ランダムフォレストアルゴリズムのブライマンの元の実装では、各ツリーは合計トレーニングデータの約2/3でトレーニングされます。したがって、フォレストが構築されると、そのツリーの構築に使用されていないサンプルで各ツリーをテストできます(クロス検証を1つ省略した場合と同様)。これはout of bagエラー推定値です。ランダムフォレストの構築中の内部エラー推定値です。

42
eagle34