選択したフィーチャの数を減らすと、エラーのランダムフォレストOOB推定が改善されるのはなぜですか?


14

ランダムフォレストアルゴリズムを、数千の特徴を持つ2つの既知のグループに分割されたマイクロアレイデータセットの分類子として適用しています。最初の実行後、機能の重要性を確認し、5、10、および20の最も重要な機能を使用してツリーアルゴリズムを再度実行します。 すべての機能、トップ10および20について、エラー率のOOB推定値は1.19%であることがわかりましたが、トップ5の機能については0%です。 これは私には直観に反しているように思えるので、何かを見逃しているのか、間違ったメトリックを使用しているのかを説明できるかどうか疑問に思っていました。

ntree = 1000、nodesize = 1、mtry = sqrt(n)でRのrandomForestパッケージを使用しています


2
明確にするために、RFを反復的に適用していますか?つまり、入力スペース全体から(GiniインデックスまたはMSEの減少に応じて)トップランクの機能を選択していますか?ツリー数を増やしてもRFは必ずしも改善されないかもしれませんが、あなたが描いていることは理にかなっているようです(最良の機能ではOOBサンプルを100%の精度で予測できます)。 。
chl

はい、それが私がやっていることです
ダニエルズブリューワー

2
@ chl、5つの機能のみを使用してオーバーフィットのリスクがある理由を説明できますか?
tashuhka 14年

回答:


15

これは機能選択のオーバーフィットであり、よく知られています。Ambroise&McLachlan 2002を参照してください。この問題は、RFがスマートすぎてオブジェクトの数が少なすぎるという事実に基づいています。後者の場合、一般的に、決定と良好な相関関係を持つ可能性のある属性をランダムに作成するのは非常に簡単です。また、属性の数が多い場合、完全に無関係な属性の一部が非常に優れた予測子になることを確信できます。特に、柔軟性が非常に高い場合は、決定を100%で再現できるクラスターを形成するのに十分ですRFが考慮されます。したがって、可能な限り最適な属性のサブセットを見つけるように指示されると、FSプロシージャがこのクラスターを見つけることが明らかになります。
1つのソリューション(CV)がA&McLで提供されています。トピックに対するアプローチをテストすることもできます。Borutaアルゴリズムは、基本的に「シャドウアトリビュート」を設計によりランダムに設定してセットを拡張し、RFの重要性を実際のアトリビュートで取得したこれと比較して、どれが実際にランダムで削除可能かを判断します。これは何度も繰り返されて重要です。Borutaはやや異なるタスクを目的としていますが、私のテストが示す限り、結果のセットにはFSオーバーフィットの問題はありません。


2

このパターンの直感的な説明を追加すると思いました。

ランダムフォレストを構成する各決定ツリーでは、データは単一のディメンションに沿って繰り返し分割されます。重要なことには、この手順には

1)すべての説明変数の小さいランダムに選択されたサブセットのみを考慮し、

2)このランダムに選択された変数サブセット内で最も強く関連する説明変数を選択して、データを分割します。

したがって、説明変数の数が増えると、n個の最も重要な変数が特定のノードで選択される確率が低下します。したがって、説明力がほとんどまたはまったく寄与しない多数の変数を追加すると、自動的にフォレストのエラー率が増加します。逆に、含める重要な変数のみを選択すると、エラー率が低下する可能性が非常に高くなります。

ランダムフォレストはこれに対して非常に堅牢であり、通常、パフォーマンスを大幅に低下させるためにこれらの「ノイズ」パラメータを非常に多く追加する必要があります。

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