ランダムフォレストのチューニングに関する実用的な質問


65

私の質問はランダムフォレストについてです。この美しい分類器の概念は私には明らかですが、実際の使用上の疑問はまだたくさんあります。残念ながら、RFの実用的なガイドを見つけることができませんでした(Geoffrey Hintonによる「制限付きボルツマンマシンのトレーニングのための実践ガイド」のようなものを探していましたが、ランダムフォレストについてです!

実際にRFを調整するにはどうすればよいですか?

ツリーの数が多いほど良いというのは本当ですか?ツリーの数の増加と、特定のデータセットの推定方法に合理的な制限(もちろん、比較能力を除く)はありますか?

木の深さはどうですか?合理的なものを選択するには?1つのフォレスト内で異なる長さの木を実験することに意味はありますか?それに対するガイダンスは何ですか?

RFのトレーニング時に検討する価値のある他のパラメーターはありますか?個々のツリーを構築するためのアルゴリズムはどうでしょうか?

RFがオーバーフィッティングに耐性があると彼らが言うとき、それはどのように真実ですか?

検索中に見逃したかもしれない答えやガイドや記事へのリンクに感謝します。


回答:


43

私は権威のある人物ではないので、これらの簡単な開業医のメモを考慮してください。

リターンが減少するほど、ツリーの数は増えます。深いツリーは、ほとんどの場合、同様のパフォーマンスのためにより多くのツリーを必要とする場合に適しています。

上記の2つのポイントは、バイアスと分散のトレードオフの結果です。深いツリーはバイアスを減らします。木が多いほど分散が減少します。

最も重要なハイパーパラメーターは、各スプリットに対してテストする機能の数です。無駄な機能が多いほど、より多くの機能を試す必要があります。これは調整が必要です。トレーニングデータのパフォーマンスを知りたいだけで、双晶がない場合(〜繰り返し測定)、OOB推定を介して調整できます。これは最も重要なパラメーターですが、最適なのは通常、元の推奨デフォルト(分類/回帰の場合はsqrt(p)または(p / 3))にかなり近いことです。

かなり最近の調査によると、優れたパフォーマンスを得るために機能内で徹底的な分割検索を行う必要さえありません。選択したフィーチャごとにいくつかのカットポイントを試して、先に進みます。これにより、トレーニングがさらに高速になります。(〜非常にランダムなフォレスト/ツリー)。


その他の注意点:実際には、通常、ツリーの半分の予測を他の半分と比較することで収束を確認します。過剰適合に関する限り、それはより一般化しようとしているものの機能です。代表的なサンプルでトレーニングしている場合、それらは過剰になりませんが、それが実際に機能することはめったにありません。
シェイ・パークス

時間とともに変化する依存構造を持つ非常にノイズの多いデータについては、「深いツリー=より良い、他のすべては一定」であり、線形関係はトレーニングセットとテストセットの間で変化しない最もロバストです?
ジェイス14年

浅い関係のみを学習する必要がある状況にある場合、浅い木がより良い可能性を見ることができますが、私はそれを証明するために経験的な証拠を本当に使いたいです(そしてそれに取り組む時間はありません)。線形関係が最も回復力があることを信じている、または証拠がある場合は、ツリーベースではないものを強く検討します。スキップレイヤーのあるニューラルネットワークでしょうか?
シアパークス14

3つの関連フィーチャと100のフィーチャがホワイトノイズであり、50のデータポイントがあるデータセットがあるとしましょう。ただし、どれがホワイトノイズで、どれが前もって関連しているかはわかりませんが、データが非常にノイズであることがわかっているだけです。明らかに極端に浅い大きな木mtryはより良いです、これを見るための証拠または経験的証拠は必要ありません。
ジェイス14

22
  • 木の数:大きいほど良い:はい。停止するタイミングを評価して知る1つの方法は、フォレスト(または使用可能な他の評価基準)の構築中にエラー率を監視し、収束するタイミングを検出することです。学習セット自体で、または可能であれば独立したテストセットでそれを行うことができます。また、ツリーのテストノードの数はオブジェクトの数の上限であることに注意する必要があります。そのため、多くの変数があり、トレーニングオブジェクトがそれほど多くない場合は、より大きなフォレストを強く推奨します。フォレスト内ですべての記述子を少なくとも1回評価する可能性。

  • ツリーの深さツリーの深さを制御する方法がいくつかあります(最大の深さを制限し、ノードの数を制限し、分割に必要なオブジェクトの数を制限し、分割によってフィットが十分に改善されない場合は分割を停止します、... )。ノイズの多いデータを扱う場合は、ほとんどの場合、ツリーを剪定する(深さを制限する)ことをお勧めします。最後に、完全に開発されたツリーを使用して、短いツリーのパフォーマンスを計算できます。これらは完全に開発されたツリーの「サブセット」です。

  • 各ノードでテストする機能の数:さまざまな値(推奨値を含む)でエクスペリエンスを相互検証します。パフォーマンスカーブを取得し、このパラメーターに最適な値を示す最大値を特定できる必要があります。 + Shea Parkesが答えます。

  • Shea ParkesはExtra-Treesについて言及しましたが、ここにメソッドの詳細を説明する元の論文があります:http : //orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf

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