ランダム フォレストの out of bag エラーとは何ですか? ランダムフォレストで適切な数の木を見つけるための最適なパラメーターですか?
2 に答える
私は説明しようとします:
トレーニング データ セットが 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 のデータをランダムにリサンプリングして作成されたS
のデータセットを"same size as original"
作成します (データセットごとに n 回)。これにより、{T1, T2, ... TS}
データセットが作成されます。これらはそれぞれ、ブートストラップ データセットと呼ばれます。「with-replacement」により、すべてのデータセットTi
に重複したデータ レコードが含まれる可能性があり、Ti は元のデータセットからいくつかのデータ レコードが失われる可能性があります。これは と呼ばれBootstrapping
ます。(en.wikipedia.org/wiki/Bootstrapping_(統計))
バギングは、ブートストラップを取得し、各ブートストラップで学習したモデルを集約するプロセスです。
現在、RF はS
ツリーを作成m (=sqrt(M) or =floor(lnM+1))
し、可能な機能からランダムなサブ機能を使用M
して任意のツリーを作成します。これをランダム部分空間法と呼びます。
したがって、ブートストラップ データセットごとTi
にツリーを作成しますKi
。いくつかの入力データを分類したい場合はD = {x1, x2, ..., xM}
、各ツリーを通過させ、S
で表すことができる出力 (各ツリーに 1 つ) を生成しますY = {y1, y2, ..., ys}
。最終的な予測は、このセットの多数決です。
バッグ外エラー:
分類子 (S
ツリー)を作成した後(Xi,yi)
、元のトレーニング セットのそれぞれについて、つまりを含まないものT
をすべて選択します。このサブセットは、元のデータセットの特定のレコードを含まないブーストラップ データセットのセットです。このセットは out-of-bag の例と呼ばれます。このようなサブセットがあります(元のデータセット T の各データ レコードに 1 つ)。OOB 分類子は、含まれていない投票のみの集計です。Tk
(Xi,yi)
n
Tk
(xi,yi)
汎化誤差の out-of-bag 推定値は、トレーニング セットの out-of-bag 分類器のエラー率です (既知yi
のものと比較してください)。
どうしてそれが重要ですか?
Breiman [1996b]のバギングされた分類器のエラー推定の研究では、out-of-bag 推定がトレーニング セットと同じサイズのテスト セットを使用した場合と同じくらい正確であることを示す経験的証拠が得られています。したがって、out-of-bag エラー推定を使用すると、取っておいたテスト セットが不要になります。1
(訂正してくれた@Rudolfに感謝します。以下の彼のコメント。)
Breiman のランダム フォレスト アルゴリズムの最初の実装では、各ツリーはトレーニング データ全体の約 2/3 でトレーニングされます。フォレストが構築されると、各ツリーは、そのツリーの構築に使用されていないサンプルでテストできます (相互検証を 1 つ除外するのと同様)。これは、アウト オブ バッグ エラー推定値です。つまり、構築中のランダム フォレストの内部エラー推定値です。