複数モデルを組み合わせて精度を上げるアンサンブル学習。 バギング・ブースティングに加えてスタッキングを学びます。
前にバギングとブースティングって学んだよね。 他にも組み合わせの手法ってあるの?
あるわよ。 大きな3手法がバギング・ブースティング・スタッキングね。 さらに簡略版のブレンディングもあるのよ。
スタッキングは『複数の異なる弱学習器の予測値を、メタ学習器(別のモデル)が統合する』2段構造のアンサンブル。 各層の役割が違うのが特徴。
うぅ〜ん…層が2つもあるのぉ?
Level-0(ベース層): ロジスティック回帰・決定木・SVM・LightGBM 等の異種モデル群が予測。 Level-1(メタ層): その予測値を入力として、最終的な予測を出すモデル(通常シンプルな線形回帰やロジスティック回帰)。
なんでわざわざ違う種類のモデルを混ぜるの?
各モデルが異なる弱点を持つので、組み合わせで弱点を補い合う多様性効果が得られるから。 同じモデルを並列にしても効果は薄い。
ブレンディングはスタッキングの簡略版。 訓練データを更に分割して、片方でベース層、もう片方でメタ層を学習する。 シンプルだがホールドアウト分のデータが減るデメリットあり。
これってKaggleで使われるのぉ?
そうそう、Kaggle上位陣はスタッキングをほぼ必ず使うわ。 単一モデルで90%精度の問題でも、スタッキング・ブレンディングを駆使すれば92〜93%まで伸びることも珍しくないのよ。
実務では?
実務では運用コストとのトレードオフですね。 ベースライン+LightGBM単体で十分な精度なら、わざわざスタッキングしない選択も賢明です。 Kaggleのトリックではありますが、DS検定★では概念を押さえれば十分ですよ。
DS検定★では『3手法の違い』『スタッキングは異種モデル+メタ学習器』を押さえて。
確認クイズ
スタッキングの説明として最も正しいのはどれか。
- 同じ決定木をたくさん並列に並べる
- 弱学習器を逐次追加して誤差を補正する
- 異種のベース学習器の予測を、メタ学習器が統合する2段構造
- 全データを使って1モデルだけ学習する
こたえを見る
正解: 3. 異種のベース学習器の予測を、メタ学習器が統合する2段構造
異種のベース学習器の予測を、メタ学習器が統合する2段構造がスタッキングの特徴。並列同種=バギング、逐次=ブースティングと区別しましょう。