バッギング、ランダムフォレスト、ブースティング
今回は集団学習(アンサンブル学習)で良く出てくる、バッギング、ランダムフォレスト、ブースティングについてメモしておきます。参考にしている教科書はこちらです。貼りつけている数式もこの教科書から抜粋しています。
- 作者: Trevor Hastie,Robert Tibshirani,Jerome Friedman
- 出版社/メーカー: Springer
- 発売日: 2008/12/01
- メディア: ハードカバー
- 購入: 1人 クリック: 222回
- この商品を含むブログ (16件) を見る
どの手法も、「弱い学習器」をたくさん集めて良い予測値を得ることを目指しています。弱学習器を集めているせいか、予測精度は高いのに過適合しにくいのが特徴です。教科書の事例では学習データでどんどん学習させても、テストデータに対して予測エラーが全然上がらない(つまり過学習していない)。
1. バッギング(Bagging)
データをブートストラップサンプリングし、予測器f(x)を作る。それをB回繰り返し、それぞれの予測器の平均値を予測値とする。
特に、f(x)が決定木(decision tree)の場合をバッギング木(bagged tree)という。
2. ランダムフォレスト(Random Forest)
バッギング木と似たアルゴリズムだが、説明変数もランダムにm個選択するところが大きく異なる。バッギングと同じように、データは毎回ブートストラップサンプリングする(P588)。
3. ブースティング(Boosting)
アルゴリズムGの予測値を実測値に近づけるように、予測値の加重和パラメータω、アルゴリズムの加重和パラメータαを計算する。最終的にM個作ったアルゴリズムをαで加重和したものを予測値とする(下記の結果変数は[-1, 1]なのでsignを予測値としている)。
パラメータの計算方法で最も有名な方法が、アダブーストM1(Ada Boost.M1)である(P339)。また、アルゴリズムGの損失関数の微分(勾配)を利用して、パラメータ更新を素早く行うことのできる手法が、勾配ブースティングモデル(Gradient Boosting Model, GBM)である(P361)。