ランダムフォレストを回避する場合


25

ランダムフォレストはさまざまなタスクでかなりよく動作することが知られており、学習方法の革細工人と呼ばれてきました。ランダムフォレストの使用を避けるべき問題や特定の条件はありますか?


8
こんにちは。「PLSは...のレザーマンです」、「ブートストラップは...のレザーマンです」、「ランダムフォレストは...のレザーマンです」それは単なるコメントでした:)
ステファンローラン14

回答:


24

引用の特定の言語について考えると、革職人はマルチツールです。小さなギズモがたくさん入れられた単一のハードウェアです。ペンチ、ナイフ、ドライバーなどです!これらの各ツールを個別に持ち歩く必要はなく、レザーマンはズボンに留めておくことができる単一のアイテムなので、いつでも手元に置いておくことができます。これは便利ですが、トレードオフは、各コンポーネントツールがその仕事で最高ではないということです。缶切りは使いづらく、ドライバービットのサイズは通常間違っており、ナイフは口whiを吹く以上のことはできません。これらのタスクのいずれかを実行することが重要な場合は、実際のナイフ、実際のドライバー、または実際のペンチのペアなど、専用のツールを使用するとよいでしょう。

ランダムフォレストは、同じ用語で考えることができます。ランダムフォレストは、さまざまなデータセットで強力な結果を生成し、チューニングパラメーターにあまり影響を受けません。しかし、それは完璧ではありません。問題についてよく知れば知るほど、特定の問題に対応するための特別なモデルを簡単に構築できます。

ランダムフォレストが悪戦苦闘する明らかなケースがいくつかあります。

  • スパース性 -データが非常にまばらな場合、それはいくつかのノードのために、ブートストラップサンプルと機能のランダムなサブセットを不変特徴空間を生成するために協力することが非常にもっともらしいです。生産的な分割を行う必要はないため、このノードの子が役立つことはほとんどありません。このコンテキストでは、XGBoostのパフォーマンスが向上します。

  • データは軸に沿って整列されていません-2つの特徴バツ1バツ2の空間に斜めの決定境界があると仮定します。これがデータに関連する唯一のディメンションである場合でも、通常のランダムフォレストモデルは、その斜めの境界を記述するために多くの分割を必要とします。これは、各スプリットがいずれかの軸に垂直に向けられているためですバツ1またはバツ2です。(通常のランダムフォレストモデルは x 1 > 4の形式の分割を行うため、これは直感的である必要がありますバツ1>4。)各分割に対して選択されたフィーチャのサブセットに対してPCA投影を実行する回転フォレストを使用して、これを克服できます。直交基底への投影は、原則として、分割が元の基準で軸に合わせられなくなります。

    この画像は、軸に沿った分割がランダムフォレストの決定にどのように影響するかの別の例を示しています。決定境界は原点にある円ですが、この特定のランダムフォレストモデルは円を近似するボックスを描画することに注意してください。この境界を改善するためにできることはたくさんあります。最も簡単なのは、より多くのデータを収集し、より多くの木を構築することです。 ここに画像の説明を入力してください

  • ランダムフォレストは基本的に表形式のデータでのみ機能し、すなわち、画像であるデータ、またはグラフ上でネットワーク化された観測値という意味で、特徴間に強い、質的に重要な関係はありません。これらの構造は、通常、多くの長方形のパーティションによってうまく近似されていません。データが時系列に存在する場合、一連の画像である場合、グラフ上に存在する場合、または他の明らかな構造を持つ場合、ランダムフォレストはそれを認識するのに非常に苦労します。研究者がこれらの状況に対応しようとする方法のバリエーションを開発したことは疑いの余地がありませんが、バニラランダムフォレストは必ずしもこれらの構造を有用な方法で拾い上げるとは限りません。良いニュースは、これがいつ起こるかを一般的に知っていることです。つまり、画像、時系列、または作業するグラフがあることを知っている、

バニラランダムフォレストは、長方形でないパーティションを認識する可能性があると思います。たとえば、2次の特徴を持つことができ、x ^ 2 <cのような境界を認識できます。
アニルダアチャリヤ

2
@AniruddhaAcharya私は「闘争」と言ったが失敗しない。ここでの私の答えは、二次関数が克服できない問題ではないことを明らかにしています。ただし、対角線または二次曲線またはその他の非整列タイプの分割では、対角線/曲線を近似するために、これらのフィーチャでツリーを長方形に何度も分割する必要があります。この投稿へのプロットでその効果を見ることができます:鋭い角を見てください。RFは、正方形を使用して円を近似しています。
Sycoraxが復活モニカ言う

二次(およびその他の高次)の機能をRFに供給することで、非矩形パーティションのモデリングの苦労を減らすことができました。たとえば、RFでは、正方形を使用する代わりに2つの2次関数を使用して円を近似できます。変数間の相互作用を組み込むモデルほど簡単ではないことに同意しますが、RFは生の機能でのしきい値の使用に制限されないため、それほど難しくないと感じます。
アニルダアチャリヤ

1
@AniruddhaAcharya平方項が正しいモデルであることがわかっている場合、ランダムフォレストは不要です。線形モデルに平方項を追加するだけです。RFは、特に軸に沿った決定関数がある場合に、任意の関数を近似するための良い方法です。
Sycoraxが復活モニカ言う

@AniruddhaAcharyaによって提案された(2次用語)フィーチャエンジニアリングは、RFと組み合わせて使用​​するのに有用なステップではないのはなぜですか?はい、これらの機能は線形モデルに追加できますが、後者は、機能の異なるサブセットに対して個別に最適化された多くの結果の寄与を結合する動作を提供しません。
javadba

22

鋭い角。正確。

拡散法を使用します。ゴツゴツしたものによく合います。サンプルサイズが小さい場合、精巧で非常に詳細なものにはうまく適合しません。多変量時系列データではうまくいかないと思います-ここにある何かが遠くにある1つのものに依存しているとき。

勾配ブーストフォレストは適合または過剰適合の可能性がありますが、同じデータに対して大幅に低いエラーを取得できます。

レザーマン」は存在しません。「銀の弾丸」はありません。ツールボックスがあります。あなたのツールを知り、彼らがあなたの世話をすることができるようにそれらの世話をしてください。ツールボックスに密集したライブラリがない場合は特に、「ハンマーのときはすべての問題が釘のように見える」ことに注意してください。

問題をよく理解するまで、何かが解決するか、お気に入りのツールが解決するかを想像するのは簡単です。知恵は、問題を深く理解し、ツールに精通していることをお勧めします。

追加:他の何かを使用するのに十分な計算リソースまたは時間マージンがある場合。RFはトレーニングが高速であるだけでなく、実行も高速です。非常に深いブーストされた構造は、それほど重要ではありません。それをサポートするにはオーバーヘッドが必要です。


2
ここで悪魔の提唱者であるために:何もないでしょう「フィット精巧かつ非常に詳細なものだけでなく、サンプルサイズが小さいときに
usεr11852は回復モニック言う

5

私が実際に質問に答えるのはこれが初めてなので、私にそれを固定しないでください..しかし、私はあなたの質問に答えることができると思います:

実際にモデルのパフォーマンスのみに興味があり、解釈可能性のようなものに興味がない場合、ランダムフォレストは実際には非常に優れた学習アルゴリズムであることが多いですが、以下の場合はパフォーマンスがわずかに低下します。

1.)トレーニングサンプルの数に対して次元(特徴の数)が非常に大きい場合、これらの場合、正規化された線形回帰またはSVMの方が適しています。

2.)コンピュータビジョンの問題のように、データに高次の表現/畳み込み構造がある場合。これらのコンピュータービジョンの場合、畳み込みニューラルネットワークはランダムフォレストよりも優れています(一般に、学習に組み込むことができる知識がある場合、それはより良いことです)。

ランダムフォレストと言われていることは、非常に良い出発点です。私が機械学習スキルで賞賛する人物の1人は、常にランダムフォレストと正規化された線形リグレッサーの学習から始まります。

ただし、可能な限り最高のパフォーマンスが必要な場合は、最近のニューラルネットワークとも呼ばれます。ディープラーニングは非常に魅力的なアプローチのようです。KaggleなどのデータチャレンジWebサイトでの受賞者は、競争にディープラーニングモデルを使用しています。ニューラルネットワークのもう1つの長所は、非常に多数のサンプルを処理できることです(10 ^ 6を超えると、確率的勾配下降を使用して、一度にデータのビットを供給してトレーニングできます)。個人的には、これはディープラーニングにとって非常に魅力的なプロだと思います。


2
いい答えですが、最後の点は正しくありません。すべての一般的な機械学習アルゴリズムにミニバッチトレーニングを実装できます。たとえばh2oを参照してください。
ジュボ14

興味深いことに、私はそれを知りませんでした。これらの方法を使用して、ミニバッチ/ SGD学習を使用して(決定)ツリーをトレーニングし、トレーニング合計データの多数決(たとえば65%)に基づいて単一のツリーを構築できると言っていますか?
MJW 14

1
フィーチャの数が多い場合でもランダムフォレストは良いはずだと思います-単一のツリーを構築するときに一度に多くのフィーチャを使用しないでください。最後に、集合的に(うまくいけば)うまくいく。
アレクセイ・グリゴレフ14

私の知る限り、h2oはミニバッチトレーニングにmap-reduceパラダイムを使用しています。単一(CART)ツリーは、h2oでは実装されていません(ただし、剪定されていないツリーは、ツリーが1つだけで予測子の選択が最大のランダムフォレストの特殊なケースだと思いますか?)。
ジュボ14

2
(1)の正当性は何ですか?あなたは主張をしますが、裏付けとなる議論を提供しません。
シコラックスは、モニカを復活させる

0

まず、ランダムフォレストは次のデータタイプには適用できません。

  • 画像
  • オーディオ
  • テキスト(前処理後のデータはまばらになり、RFはまばらなデータではうまく機能しません)

表形式のデータ型の場合、ランダムフォレストをチェックすることは常に適切です:

  • ニューラルネットワークまたはSVMよりも少ないデータ準備と前処理が必要です。たとえば、機能のスケーリングを行う必要はありません。
  • ランダムフォレストトレーニングでは、既定のパラメーターを使用して、ツリーの数を設定するだけです(RF内のツリーが多いほど良い)。Random ForestとNeural Networks比較すると、トレーニングは非常に簡単です(アーキテクチャを定義したり、トレーニングアルゴリズムを調整したりする必要はありません)。ランダムフォレストは、ニューラルネットワークよりもトレーニングが簡単です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.