本日のまとめ(アンサンブル学習)

アンサンブル学習

  • 様座な分類器を1つのメタ分類器として組み合わせる。
  • 最もよく使われるのは多数決(majority voting)
  • 2値分類問題で1つの誤分類率が0.25の分類器を11個組み合わせた場合、6個以上(過半数)が間違える確率は0.034となる(具体的な計算は割愛)
  • 単純な多数決ではなく、重み付きとなることもある

 y = arg max(i)  \sum_{j=1}^{m} w_j \chi_A (C_j (x) = i)
\\
y:アンサンブルで予測するラベル \\
w_j : 各分類器の重み \\
\chi_A :  特性関数

  • 上記をpythonで実装するには、argmaxとbincountを組み合わせる

バギング

  • アンサンブルを構成する個々の分類器に同じトレーニングデータではなく、最初のトレーニングデータセットから、ブートストラップ標本(ランダムな復元抽出)を利用する。
  • 上記から、バギングはブートストラップ集約とも呼ばれる。

アダブースト(Adaptive Boost:AdaBoost)

  • アンサンブルは非常に単純なベース分類器で構成される
  • 分類の難しい誤分類されたトレーニングサンプルをあとから弱学習器に学習させることでアンサンブルの性能を向上させる

アダブーストの仕組み

ブースティングの原型
  • レーニングデータセットDから、ランダムなサブセットd1を非復元抽出し、弱学習器C1をトレーニングする
  • 2つ目のランダムなトレーニングデータセットd2を非復元抽出し、以前に誤分類されたサンプルの50%を追加してC2をトレーニングする
  • レーニングデータセットからC1, C2の結果が異なるものから構成されるd3を洗い出す。そのd3を用いて学習器C3をトレーニングする
  • C1, C2, C3で多数決する
  • 上記の手順では、過学習になる傾向がある

アダブースト

  • 誤分類の重みを大きく、正しいものの重みを小さくを繰り返す