集団学習(ensemble learning) | nibuiroフラグメント β

集団学習(ensemble learning)

集団学習(ensemble learning)

集団学習(ensemble learning)

 ここでは主に異なるアルゴリズムのアンサンブルを行うスタッキング(stacked ensembling)とその一種と考えられるブレンディング(Blending)を紹介します。と言っておいてなんですが辻褄合わせの結果をご覧ください、といったところ。
 bagging、boostingなどはここでは扱いません。
 

アンサンブル

 複数の予測値のランク平均、平均、幾何平均などをとる

スタッキング

 メタアンサンブリングとも呼ばれる。それぞれ学習器から得られた予測値を「n次元メタ特徴」とし、それらを用いて分類/回帰を任意の回数だけしていく。3次は見たことがないので効果が得られないのだろう。

ブレンディング

 ブレンディングというのはNetfixコンペの優勝者によって提唱された言葉。ブレンディングはスタッキングの一種と考えられる。これはスタッキングに極めて近いが僅かに異なり、情報欠如のリスクが少ない。いくらかの研究者は スタッキングと ブレンディングを互換的に用いる。
 スタッキングよりもブレンディングのほうがテスト性能が良いこともあれば逆もまた然りということ?
 以下にアルゴリズムを示す。

  1. 単純にトレーニングセットを分ける。
  2. 多くのモデルで学習を行いバリデーションをそれぞれ行う。そしてこれらの予測値を用いて、重み付平均、線形回帰、などの任意のアルゴリズムで性能が最大になるものを見つけ出す。
    (ここで汎化性能を目指してもいいかもしれないが単純な手法なので単純に精度を高めればいいはず。)
  3. テストデータに適用する。

“Blending and Stacking”

“Blending and Stacking”というワードをちらほら見た方もいると思いますが、これは「ブレンドして積み重ねていこー」a.k.a.スタッキングかと。

“Stacked Generalization”

そして、アイキャッチ画像で行っていることはアンサンブルで減次、減次、ブレンディングで汎化、といったところだろう。


参考:
・http://forums.fast.ai/t/difference-between-stacking-vs-blending/1727
・https://www.quora.com/What-are-examples-of-blending-and-stacking-in-Machine-Learning
・https://github.com/MLWave/Kaggle-Ensemble-Guide
・https://en.wikipedia.org/wiki/Ensemble_learning