Select Language

AI Technology Community

ランダム森林の生成

  前述のとおり、ランダムフォレストには多くの分類木があります。入力サンプルを分類するには、その入力サンプルを各木に入力して分類する必要があります。具体的な例えで説明すると、森の中で会議が開かれ、ある動物がネズミかリスかを議論します。各木は独立してこの問題に対する意見を述べ、つまり投票を行います。その動物がネズミかリスかは、投票結果に基づいて決定され、最も多くの票を獲得したクラスが森の分類結果となります。森の各木は独立しており、99.9%関連性のない木が行う予測結果はすべての状況を網羅し、これらの予測結果は互いに相殺されます。少数の優れた木の予測結果は、多くの「ノイズ」から脱却し、良い予測を行います。いくつかの弱分類器の分類結果を投票で選択することで、強分類器を構成するのが、ランダムフォレストのバギングの考え方です(バギングについて触れる必要がある問題として、バギングの代償は、単一の決定木で予測を行わないことであり、具体的にどの変数が重要な役割を果たしているかが不明になるため、バギングは予測精度を向上させますが、解釈性を犠牲にします)。下の図はこの状況を具体的に表しています:

 

  木があれば分類できますが、森の各木はどのように生成されるのでしょうか?

  各木は以下の規則に従って生成されます:

  1)訓練データセットのサイズがNの場合、各木について、訓練データセットからランダムかつ復元抽出でN個の訓練サンプルを抽出し(このサンプリング方法をブートストラップサンプル法と呼びます)、それをその木の訓練データセットとします;

  ここからわかるように、各木の訓練データセットはそれぞれ異なり、かつ重複した訓練サンプルが含まれています(この点を理解することは非常に重要です)。

  なぜ訓練データセットをランダムサンプリングするのですか?(2016年5月28日追加)

  ランダムサンプリングを行わない場合、各木の訓練データセットはすべて同じになり、最終的に訓練された木の分類結果もまったく同じになります。このような場合は、バギングの必要が全くありません;

  なぜ復元抽出するのですか?(2016年5月28日追加)

  私の理解では、復元抽出ではない場合、各木の訓練サンプルはそれぞれ異なり、重複する部分がなくなります。このため、各木は「偏った」ものになり、完全に「偏狭な」ものになります(もちろん、この表現は正しくないかもしれません)。つまり、各木が訓練された結果は大きく異なることになります。一方、ランダムフォレストの最終的な分類は、複数の木(弱分類器)の投票によって決まります。この投票は「共通点を求める」ものであり、完全に異なる訓練データセットを使って各木を訓練することは、最終的な分類結果には役立たず、「盲人が象を触る」ようなものです。

  2)各サンプルの特徴次元がMの場合、定数m(m<

  3)各木は最大限に成長し、剪定の過程はありません。

  最初に述べたランダムフォレストの「ランダム」とは、ここでの2つのランダム性を指します。これら2つのランダム性の導入は、ランダムフォレストの分類性能にとって非常に重要です。これらが導入されたことで、ランダムフォレストは過学習に陥りにくく、良好なノイズ耐性を持ちます(例えば、欠損値に鈍感です)。

  ランダムフォレストの分類結果(誤り率)は2つの要素に関係しています:

  • 森の中の任意の2本の木の相関性:相関性が大きいほど、誤り率が大きくなります;

  • 森の中の各木の分類能力:各木の分類能力が強いほど、全体の森の誤り率は低くなります。

  特徴選択数mを減らすと、木の相関性と分類能力もそれに応じて低下します;mを増やすと、両者も増加します。したがって、重要な問題は、最適なm(または範囲)をどのように選択するかであり、これがランダムフォレストの唯一のパラメータです。

ページ上部に戻る

5 バッグアウト誤り率(oob error)

  前述のとおり、ランダムフォレストを構築する上での重要な問題は、最適なmをどのように選択するかです。この問題を解決するためには、主にバッグアウト誤り率oob error(out-of-bag error)を計算することに基づきます。

  ランダムフォレストには、交差検証や独立したテストセットを使って誤差の不偏推定値を得る必要がないという重要な利点があります。内部で評価を行うことができ、つまり生成過程で誤差の不偏推定値を構築することができます。

  各木を構築する際に、訓練データセットに対して異なるブートストラップサンプル(ランダムかつ復元抽出)を使用していることがわかっています。したがって、各木(第k木と仮定)について、約1/3の訓練事例は第k木の生成に関与しておらず、これらを第k木のoobサンプルと呼びます。

  このようなサンプリングの特徴により、oob推定を行うことができ、その計算方法は以下の通りです:

  (注:サンプルを単位とする)

  1)各サンプルについて、それがoobサンプルとなる木による分類状況(約1/3の木)を計算します;

  2)次に、単純多数決によりそのサンプルの分類結果とします;

  3)最後に、誤分類されたサンプル数のサンプル総数に対する割合をランダムフォレストのoob誤分類率とします。

  (文献原文:各事例を、第k木の構築において取り残された状態で第k木に入力して分類を行います。このようにして、各事例について約1/3の木でテストセットの分類結果が得られます。実行終了時に、事例nがoobであったすべての場合において最も多くの票を獲得したクラスをjとします。jが事例nの真のクラスと等しくない割合をすべての事例にわたって平均したものが、oob誤差推定値です。これは多くのテストで不偏であることが証明されています。)

  oob誤分類率は、ランダムフォレストの汎化誤差の不偏推定値であり、その結果は大量の計算を必要とするk分割交差検証に近似しています。


post
  • 6

    item of content
ランダムフォレスト(Random Forest、略してRF)は広範な応用可能性を持っており、マーケティングから医療保険まで多岐にわたり利用されています。マーケティングシミュレーションのモデリングや顧客の獲得、維持および離反の統計に使用されるだけでなく、疾患リスクや患者の感受性の予測にも用いられます。私自身、初めてこのアルゴリズムに触れたのは校外コンペティションに参加していた時でした。近年の国内外の大会、例えば2013年の百度校园电影推荐系统大赛(Baiduキャンパス映画推薦システムコンペティション)、2014年の阿里巴巴天池大数据竞赛(アリババTianchiビッグデータコンペティション)やKaggleデータサイエンスコンペティションなどでも、参加者の多くがランダムフォレストを使用しています。さらに、私の個人的な経験からも、最終選考に残ったチームの大部分がRandom ForestまたはGBDTアルゴリズムを選択していることが分かります。したがって、Random Forestはその精度において相当な優位性を持っていると言えるでしょう。