Help us understand the problem. What is going on with this article?

RandomForest(ランダムフォレスト)の仕組み

ランダムフォレストとは

「決定木」と呼ばれる判定モデルを沢山作って、それぞれの決定木で予測結果を出し、その多数決により最終的にどれに分類されるのかを判定するモデルです。決定木を作る度にデータの中からランダムに特徴量を選んでいくことから、ランダムフォレストと言われます。

決定木はデータセットに対して質問を繰り返して、うまく分類できるように作ります。その中でどういう質問をすれば正解の精度が高くなるか、アルゴリズムの中で工夫されています。

アンサンブルの効果

複数のモデルを組み合わせて学習することを、アンサンブル学習といいます。ランダムフォレストは決定木で多数決を取るアンサンブル学習です。一つのモデルのみで判断するよりも精度がよくなることが知られています。

今から2値分類でのランダムフォレストを考えます。ランダムフォレストでの$n$個の個々の決定木の正解率は全て$p$であったとします。このとき、ランダムフォレストでの正解率はどうなるか考えてみます。

個々の決定木に確率変数$X_{i}(i=1,2,3,..,n)$を対応させて考えます。$X_{i}$は$i$番目の決定木で、正解したら(確率$p$で)$1$、不正解なら(確率$1-p$で)$0$を取るとします。そうすると、各$X_{i}$はパラメータ$p$のベルヌーイ分布に従います。さらに
$$S_n:=\sum_{i=1}^{n}X_{i}$$
のように和をとると、ベルヌーイ分布の性質により$S_n$はパラメータ$n$と$p$の二項分布に従います。一方、ランダムフォレストでは多数決なので、各$X_i$で正解である$1$の方が過半数を取ればいいことになり、$S$で言えば$\frac{n}{2}$より大きくなればランダムフォレストとして正解します。よってランダムフォレストでの正解率は
$$
P(S_n>\frac{n}{2})
$$
で表せます。

◆それでは具体的な数値を入れて効果を見てみます。

例1:$p=0.6,n=50$とします
⇒$S_n$はパラメータ$50$と$0.6$の二項分布に従い、正解率$P(S_{50}>25)$は二項分布の上側累積確率となり、小数点第2位までとして計算すると$0.90$となります。$0.6$よりかなり正解率が上がったことが分かります。単独の決定木の精度が良くなくても、その組み合わせであるランダムフォレストでは正解率の向上が見込めます。

例2:$p=0.6,n=100$とします
⇒$S_n$はパラメータ$100$と$0.6$の二項分布に従い、正解率$P(S_{100}>50)$は二項分布の上側累積確率となり、$0.97$となります。

例3:$p=0.7,n=50$とします
⇒$S_n$はパラメータ$50$と$0.7$の二項分布に従い、正解率$P(S_{50}>25)$は二項分布の上側累積確率となり、$0.99$となります。

個々の正解率$p$が高くなると、また$n$が大きくなった方がランダムフォレストの正解率は高くなりました。この$n$は木の数であり、ランダムフォレストのハイパーパラメータです。$n$を大きくすれば精度は良くなりやすいですが、計算量が増えます。

また、精度が良くなりすぎると過学習に注意が必要です。データ全体の中から学習に使うデータを選んでモデルを作っていきますが、精度が良すぎるということは、その学習データにのみ沿ったモデルになりやすいということです。そのため、学習データ以外には合わないモデルに成りえます。

機械学習では、学習データとテストデータの組み合わせを変えて平均的に評価する方法(クロスバリデーション)などを駆使して、他のデータがきても正解率を維持できるようにすることが一般的な手法として知られています。

akatin
機械学習・AIをまったり研究中、数学と遺伝的プログラミングにも興味があります。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした