ランダムフォレストおよび決定木アルゴリズム


14

ランダムフォレストは、バギングの概念に従う決定木の集合です。ある決定木から次の決定木に移動すると、最後の決定木で学習した情報は次の決定木にどのように進みますか?

私の理解では、すべての決定木に対して作成され、次の決定木が誤分類されたエラーから学習を開始する前にロードされる訓練されたモデルのようなものは何もないからです。

それでは、どのように機能しますか?


「ある決定木から次の決定木に移動するとき」。これは、線形プロセスを示唆しています。CPUコアごとに1つのツリーで作業する並列実装を構築しました。トレーニングでCPUコアごとに個別の乱数ジェネレーターを使用しない限り、これはまったく問題なく機能します。これらはすべて同じシードを共有します。その場合、多くの同一のツリーになります。
MSalters

回答:


23

ツリー間で情報は渡されません。ランダムフォレストでは、ツリーはすべてのツリーに対して同じランダム化戦略を使用して成長するため、すべてのツリーが同じように分散されます。まず、データのブートストラップサンプルを取得し、ランダムに選択された機能のサブセットからの分割を使用してツリーを成長させます。これは、アンサンブルの他のツリーに注意を払うことなく、各ツリーに対して個別に発生します。ただし、各ツリーは、トレーニングデータの共通プールからのサンプルでトレーニングされているため、純粋に相関しています。同じデータセットからの複数のサンプルは類似する傾向があるため、ツリーはその類似性の一部をエンコードします。

高品質のテキストからランダムフォレストの概要を読むと役立つ場合があります。1つは、Leo Breimanによる「Random Forests」です。Hastieらによる統計学習の要素にも章があります。

ランダムフォレストと、AdaBoostや勾配ブーストツリーなどのブースティングメソッドを混同している可能性があります。ブースティング方法は同じではありません。前のブースティングラウンドの不適合に関する情報を使用して、次のブースティングラウンドに通知するためです。参照:ランダムフォレストはブースティングアルゴリズムですか?


10

ランダムな森林は、複数の決定木の集合体である互いに独立して訓練を受けています。したがって、逐次的に依存するトレーニングの概念はありません(これは、アルゴリズムブーストする場合に当てはまります)。この結果、別の回答で述べたように、木の並行トレーニングを行うことが可能です。

ランダムフォレストの「ランダム」がどこから来るのかを知りたいと思うかもしれません。ツリーを学習するプロセスにランダム性を注入する方法は2つあります。1つは、各ツリーのトレーニングに使用されるデータポイントのランダムな選択です。2つ目は、各ツリーの構築に使用されるフィーチャのランダムな選択です。通常、単一の決定木はデータに過剰適合する傾向があるため、この方法でのランダム性の注入は、それぞれが利用可能なトレーニングデータの異なるサブセットに対して良好な精度(および場合によっては過剰適合)を持つ多数のツリーをもたらします。したがって、すべてのツリーで行われた予測の平均を取ると、オーバーフィットの減少が観察されます(利用可能なすべてのデータで1つの決定ツリーをトレーニングする場合と比較して)。

MN

  1. =0
  2. MMS
  3. TS
    • トレーニングプロセスは決定ツリーのトレーニングと同じですが、ツリー内の各ノードでランダムに選択されたフィーチャのみがそのノードの分割に使用される点が異なります。
  1. =+1
  2. <N

T1T2TN

  • 回帰タスクに使用する場合、予測の平均をランダムフォレストの最終予測として使用します。

  • 分類タスクに使用する場合は、ソフト投票戦略を使用します。各クラスのツリーで予測された確率の平均を取り、ランダムフォレストの最終予測として最も高い平均確率を持つクラスを宣言します。

さらに、ツリーを順番に依存する方法でトレーニングすることが可能であり、それがまさに勾配ブーストツリーアルゴリズムが行うことであり、これはランダムフォレストとはまったく異なる方法であることに言及する価値があります。


8

ランダムフォレストは、ブースティングアルゴリズムではなくバギングアルゴリズムです。

ランダムフォレストは、データのランダムサンプルを使用して独立してツリーを構築します。並列実装が可能です。

新しいツリーが以前に犯した間違いを修正しようとする場合に、ツリーが連続して構築される勾配ブースティングをチェックすることができます。


6

それで、それはどのように機能しますか?

ランダムフォレストは、決定木の集合です。ツリーは独立して構築されます。各ツリーは、置換の対象として選択された機能のサブセットとサンプルのサブセットでトレーニングされます。

予測の場合、たとえば分類の場合、入力パラメータはフォレスト内の各ツリーに与えられ、各ツリーは分類で「投票」し、最も投票数の多いラベルが勝ちます。

単純なディシジョンツリーでランダムフォレストを使用する理由 バイアス/分散のトレードオフ。ランダムフォレストは、単一の決定ツリーと比較すると、はるかに単純なツリーから構築されます。一般的に、ランダムフォレストは、分散によるエラーの大幅な削減と、バイアスによるエラーのわずかな増加を提供します。


デシジョンツリーごとに異なる機能を選択する場合、前のデシジョンツリーの機能セットによる学習がどのように改善されるか、次のデシジョンツリーの機能セットはまったく新しいので、誤分類された値を先に送信しますか?
アブヘイラジシン

3
@AbhayRajSingh-ランダムフォレストで「誤分類された値を先に送信しない」。Akavallが言うように、「木は独立して構築されます」
ヘンリー

1

はい、上記の著者が言ったように、ランダムフォレストアルゴリズムはバギングアルゴリズムであり、ブースティングアルゴリズムではありません。

バギングは分類器の分散を減らすことができます。これは、異なるサンプルとそのエラーに適合した基本アルゴリズムが投票で相互に補償されるためです。バギングとは、予測力を向上させる手段として、同じモデルのわずかに異なるバージョンを平均化することです。バギングを適用するには、Bブートストラップされたトレーニングセットを使用してB回帰ツリーを構築し、結果の予測を平均します。

バギングの一般的で非常に成功したアプリケーションは、ランダムフォレストです

しかし、これらの決定木をランダムフォレストで構築する場合、ツリーの分割が考慮されるたびに、m予測子のランダムサンプルがp個の予測子の完全なセットから分割候補として選択されます。分割では、これらのm予測子の1つのみを使用できます。

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