ランダムフォレストでは、ツリーレベルではなくノードレベルでフィーチャのランダムサブセットが選択されるのはなぜですか?


12

私の質問:ランダムフォレストは、ツリーレベルではなく各ツリー内のノードレベルで分割するために、フィーチャのランダムサブセットを考慮するのはなぜですか?

背景:これは歴史の質問です。ティン・カム・ホーが公開され、この論文をランダムにそれぞれ成長させるために使用する機能のサブセットを選択することにより、「意思決定の森」を構築する上で木を 2001年に、後に1998数年で、レオ・ブレイマンは彼の独創性に富んランダムフォレストの公表論文特徴サブセットがランダムであるが、各ツリーではなく、各ツリー内の各ノードで選択されます。ブライマンはHoを引用しましたが、ツリーレベルからノードレベルのランダムな特徴選択への移行については特に説明しませんでした。

この開発の具体的な動機は何だと思います。ツリーレベルでフィーチャサブセットを選択すると、ツリーの目的の非相関化が依然として達成されるようです。

私の理論:これは他の場所で明確に表現されていませんが、ランダムなサブスペース法は、特徴の重要性の推定値を取得するという点では効率が低いようです。変数の重要度の推定値を取得するために、各ツリーについて、特徴が1つずつランダムに並べ替えられ、誤判別の増加またはアウトオブバッグ観測のエラーの増加が記録されます。このランダムな順列から生じる誤分類またはエラーの増加が大きい変数は、最も重要です。

ランダム部分空間法を使用する場合、ツリーごとに、特徴のうちだけを考慮します。すべての予測子を一度でも考慮するには、いくつかの木が必要になる場合があります。我々は異なるサブセット考える一方、の特徴各ノードで、私たちは私たちにフィーチャー重要性のより堅牢な見積もりを与え、少数の木の後に、各機能に多くの時間を考慮します。mppmp

これまで見てきたこと:これまでのところ、私はブライマンの論文とホーの論文を読み、決定的な答えを見つけることなく方法の比較のために広範なオンライン検索を行いました。同様の質問が以前に聞かれたことに注意してください。この質問は、考えられる解決策に向けた私の推測/作業を含めることで、さらに先へと進みます。答え、関連する引用、または2つのアプローチを比較するシミュレーション研究に興味があります。予定されていない場合は、2つの方法を比較して独自のシミュレーションを実行する予定です。


2
参考文献を引用しませんので、これをコメントと呼びましょう。どの変数が役立つかを理解しようとしている場合、特定の変数が重要であるが、データのごく一部のみが重要である場合があります。これは、ノードレベルで変数をバギングすることで確認できます。ツリーレベルのバギングでは、これを発見することはありません。
meh

2
ブライマンは、これに関連する彼の(imho)独創的な論文「Statistics- The Two Cultures」にコメントがあると確信しています。彼のポイントは、変数の重要性が別の変数によって隠されている場合があるということです。ノードレベルでバギングすると、変数の内容と時期を確認できます。
まあまあ

1
コメントをありがとう。効率についての私の考えに戻ります。変数のペアが関連しており、あなたが言ったように、一方の重要性がもう一方の重要性を「隠した」と仮定します。十分なツリーでRF予測子を構築し、ツリーレベルの機能サブセットを使用した場合、最終的に「マスク」機能を備え、「マスク」機能なしで前者の影響を受けずに前者の重要性を得る十分なツリーがなくなります後者?少なくともほぼ同じ考えについて話していると思います。ありがとう!
djlid

4
可能性がありますが、さらに多くのツリーを構築する必要があることを考慮してください!また、明確ではありません。変数Aは、変数Bが輝かないような分割を引き起こす可能性があります。ノードレベルでサンプリングする方が明らかに本質的に堅牢です。私にとって、それは基本的にブートストラップがどうあるべきかに関係しています。
まあまあ

回答:


1

10個のフィーチャf1、f2、...、f9、f10があり、ツリーレベル自体のフィーチャのf1、f3、f4、f8を想定してサブセットを取得すると、これらの4つのフィーチャを使用してツリー全体を構築するとします。考慮に入れます。

エントロピーを計算し、すべてのノードでこれらの4つの特徴のみを比較し、最大のエントロピーをもたらす特徴を採用します。ツリーの学習をこれらの4つの機能のみに制限しているため、これはあまり役に立ちません。これとは反対に、最初のノードでf1、f8、f9などの機能のサブセットを取得する場合、エントロピーを計算し、これら3つの機能間で比較して、最大値を与える機能を選択します。同じ機能でツリーをさらに成長させる代わりに、f4、f7、f2などの機能の別のサブセットを選択し、これらの機能に基づいて分割します。最初のノードでf8が選択され、2番目のノードでf2が選択されたとします。モデルは、これら両方の関係を学習することができます。

このようにして、モデルはさまざまな機能間の関係をより多様な方法で学習できます。このアプローチでは、単一のツリーで多数の機能が調査されるため、それらの間の関係は保持されます。あなたが今それを得たことを願って:)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.