バギング (Bagging) | ブースティング (Boosting) | スタッキング (Stacking) | |
---|---|---|---|
学習方法 | 並列学習。各モデルは互いに独立して、同時に学習する。 | 直列(逐次的)学習。前のモデルの間違いを、次のモデルが重点的に学習する。 | 多段階学習。複数のモデル(第1層)を学習させ、その予測を元に最終モデル(第2層)を学習する。 |
データ | 元のデータから復元抽出(ブートストラップ)した、少しずつ違うデータセットを使う。 | 同じデータを繰り返し使うが、間違えたデータの重みを更新していく。 | 第1層は元のデータ(やその分割)を使い、第2層は第1層の予測値を新たなデータとして使う。 |
目的 | モデルのバリアンス(ばらつき)を減らす。(過学習を抑制し安定化) | モデルのバイアス(偏り)を減らす。(弱いモデルを徐々に強化) | 異なるモデルを組み合わせ、予測精度を最大化する。 |
注目ポイント | 全ての学習器が一斉に学習を始める。 | 学習器が1つずつ順番に学習し、データ点の大きさが変化する。 | 複数の学習器が学習した後、それを元に最後のメタモデルが学習する。 |
代表例 | ランダムフォレスト | AdaBoost, 勾配ブースティング (XGBoost, etc.) | (ライブラリ等で自作することが多い) |