前回は1本の決定木でした。今日は木を束ねて森にする『ランダムフォレスト』を攻略します。多様性の力で弱点を補い合う仕組みを追いかけましょう。実務で最も人気のアルゴリズムのひとつです。
前回の決定木って、深くすると過学習しやすいんだったよね。
1本で頑張るの大変じゃん。
あらあら、よく覚えてたわね。
その弱点を解決するのが、たくさんの木を束ねる作戦。
名前もずばり、ランダムフォレスト。
補足すると、ランダムフォレストは複数の決定木を作り、分類なら多数決、回帰なら平均を取って最終予測にする手法です。
典型的には100本から1000本の木を使います。
ぽわわ〜、民主主義みたいですね〜。
みんなで投票する感じ。
いい例え。
ただの多数決じゃなくて、各木を『ランダム性』で多様化する工夫がポイントなの。
同じ木を100本作っても意味がないもの。
どうランダムにするの?
主に2つの工夫があります。
(1)各木の学習データをブートストラップサンプリングで作り直す。
(2)各分岐で使う特徴量をランダムに選ぶ。
こうして木同士の性格を変えます。
多様な視点の木を集めると、個々の間違いが打ち消し合って全体として安定した予測ができるの。
これが過学習に強い理由ね。
わぁ〜! 1人だと気づけないことも、みんなで見れば見つかる、みたいな〜!
学園祭の出し物決めみたいじゃん。
クラスみんなの意見まとめると、意外といい結論出るやつ。
ランダムフォレストは実務でも非常に人気の高いアルゴリズムで、特徴量の重要度を算出できる点も便利です。
『どの特徴がモデルに効いているか』がわかるんです。
たとえば顧客が離反するかを予測するモデルで、『ログイン頻度』『最終購入日』『利用年数』のどれが効いているかがわかれば、施策に直結するわね。
それ、会社で使えそうじゃん! 理由も示せるから説得力もあるし。
弱点は、1本の決定木と違って判断理由を1本の木で説明できなくなること。
解釈性はやや落ちるわ。
合議制の代わりに、議事録は長くなる感じですね〜。
その通りです。
ただ、SHAPやpermutation importanceといった解釈支援ツールで補えるので、実運用でも問題になりにくいですね。
ちなみに、ランダムフォレストってどれくらいのデータサイズで使える?
数百行から数千万行まで幅広く使えます。
並列計算が効くので、データが増えても比較的スケールしやすいアルゴリズムです。
ぽわわ〜、多数決で賢くなるって、なんだか学校の委員会みたいですね〜。
しかも各人が違う情報で意見を作るから、偏らないじゃん。
よくできた仕組みだね。
実際、Kaggleでテーブルデータ系のコンペに出るなら『まずランダムフォレストで試す』というのが定番戦略よ。
ベースラインとして非常に優秀なの。
試験では『ランダムフォレスト=複数の決定木の多数決/平均』『多様性で過学習に強い』『バギングの代表例』を押さえましょう。
バギングは後の記事で登場するわ。
確認クイズ
ランダムフォレストが過学習に強い理由として正しいものはどれか?
- 決定木を1本だけ深く学習するから
- 複数の多様な決定木の多数決で判定するから
- データを使わず学習するから
- ニューラルネットワークを使うから
こたえを見る
正解: 2. 複数の多様な決定木の多数決で判定するから
ランダムフォレストはデータと特徴量をランダムに選んで多様な決定木を作り、その多数決/平均で最終予測をするため、個々の木の過学習が打ち消し合い、全体としては安定した予測ができます。『多様性』が鍵です。