アンサンブル学習とは

アンサンブル学習とは

アンサンブル学習とは、複数の学習器(弱学習器と呼ぶらしい)を組み合わせることで、予測精度を高める学習方法である。

3人寄れば文殊の知恵というやつらしい・・・

アンサンブル学習には、おそらく3つの学習アルゴリズムがある。

見つけたものを書き留めます。

  • バギング(Bagging)
  • ブースティング(Boosting)
  • スタッキング(Stacking)
  • Blending

ブートストラップとは

訓練データから擬似訓練データを生成する方法である。

n個の訓練データから、重複を許してランダムにn個選ぶことで、もとの訓練データと少し違う訓練データを生成する。

このブートストラップで得られたデータを、弱学習器に渡す。

バギングとは

バギングは、複数の弱学習器を並列に繋いだような構造になる。
bagging = bootstrap + aggeregatingらしい

下の図では、集計した後に、平均をとっているが、多数決を採ったりもする。

回帰は平均、分類は多数決を実施する。

ランダムフォレストは、このバギングが使われている。

特に。。。終わり

ブースティング

ブースティングは、複数の弱学習器を直列に繋いだような構造になる。

前の学習器で誤った学習データを重点的に、次の学習器で学習させる。

ブースティングには、

  1. アダブースト
  2. マダブースト
  3. ロジットブースト
  4. 勾配ブースト

勾配ブーストは、英語に直すと、Gradient Boostingである。
Kaggleなどで有名な、XGBoostやLightBGMで採用されている。

増設中

参考

スタッキングとは

工事中
Kaggleでよく見る

初段の学習器の出力結果を次段の入力結果とする、

参考

Voting ensemble

おそらく、Votingは、バギングの複数モデルの多数決を意味していると思います。

Kaggleにおいては、Submissionの集約としての多数決です。

複数の予測間での相関が低いものだと、Votingすることで、精度が良くなることもあるらしい

参考

  1. KAGGLE ENSEMBLINGガイド

Averaging

Rank Averaging

historical ranks

Blending

Information Leakの危険性が低い

参考

  1. Kaggle-Ensembling-Guide/
  2. アンサンブル学習について勉強したのでまとめました:Bagging / Boosting / Stacking