機械学習アルゴリズムには様々なモデルがありますよね。機械学習を応用するためには様々なアルゴリズムを熟知し、それがどのようなデータに対して適しているのかを把握する必要があります。
そのため本記事ではアンサンブルにおける著名な機械学習アルゴリズムであるランダムフォレストについて解説していきましょう。
ランダムフォレストとは
ランダムフォレストとは機械学習アルゴリズムのひとつで2001年にLeo Breimanによって提案されました。
このモデルは従来あったバギングというアルゴリズムを改良した手法です。バギングの長所である
- ブートストラップサンプルによる多様なモデル生成
- 学習を並列に行える
という点を持ちながら、さらに決定木のノード分割で利用する特徴量をランダムに選択することで、より多様な弱識別器を構築し、高い精度を達成することができました。
ランダムフォレストの長所
ランダムフォレストはその学習アルゴリズムの特徴から、以下のような長所を持ちます。
- 完全に独立に弱識別器を訓練できるため、学習が高速である
- ノードの分割に寄与した特徴量重要度を算出できる(厳密には異なるがどの説明変数が予測に際して重要かがわかる)
- ブースティング系のモデルと比較して特定の特徴量への依存が少ないため、過剰適合しにくい
ランダムフォレストの立ち位置
機械学習アルゴリズムは大きく線形モデル、ニューラルネットワーク、アンサンブルモデルなどのように、アルゴリズムの性質による大まかな分類があります。ランダムフォレストはその中のアンサンブルモデルという分類に属します。
またアンサンブルモデルの中では大きく分けるとバギングとブースティングがあり、バギングはモデルを並行に学習させるものであり、一方のブースティングはモデルを直列に学習させていきます。ランダムフォレストはこのバギングを改良した手法であり、「機械学習モデル」→「アンサンブル」→「バギング」→「ランダムフォレスト」という立ち位置にいると考えることができるんですね。
ランダムフォレストの学習アルゴリズム
ランダムフォレストの学習手順を以下に示しましょう
- 学習データ全体からブートストラップサンプリングを行い、弱識別器の数だけサブサンプルを作成する
- 各サブサンプルで弱識別器をそれぞれ学習させる
- 弱識別器には決定木を用いる
- 特徴量をランダムに選択し、選択された特徴量のみで決定木のノード分割を行う
- ノード分割毎に特徴量の選択を繰り返す
このアルゴリズムの肝はブートストラップサンプリングで特定のデータに依存しにくくなることと、ノード分割時に特徴量をランダムに選択することで特定の特徴量に依存しにくくなることが挙げられます。
定性的にはブートストラップサンプルを利用することでデータの行方向への汎化性能を向上させ、ノード分割時の特徴量選択でデータの列方向への汎化性能を向上させたといえます。この2つの学習時の工夫によって弱識別器間の相関が小さくなり、モデルの汎化性能を高めることが可能になったんですね。
ブートストラップサンプリング
ブートストラップサンプリングは母集団から復元抽出(重複を許してランダムにサンプルを取り出すこと)を行い、標本を作成することです。バギングとランダムフォレストではブートストラップサンプリングを導入することで、弱識別器毎に学習に利用するデータが異なるため、多様なモデルを構築することが可能になっています。
バギング
バギングはアンサンブル学習アルゴリズムのひとつで、複数の弱識別器をブートストラップサンプルでそれぞれ学習させたもののことを指します。ランダムフォレストとの違いは決定木のノード分割時に特徴量選択を行うか否かです。
バギングは弱識別器間の多様性がブートストラップサンプルの多様性のみに依存するため、ブースティングと比較したときに弱識別器間の相関が大きくなり、あまり精度が向上しないという問題点がありました。
まとめ
ランダムフォレストについて重要な点をまとめましょう。
- 機械学習アルゴリズムのひとつで、アンサンブル学習というカテゴリに属する
- バギングにおけるブートストラップサンプルでの学習に、ノード分割時の特徴量選択を盛り込んだもの
- 学習と予測が高速に動作し、かつ精度も非常に高い
- ノード分割における特徴量の寄与度を算出でき、モデルの解釈性がある