AI資格ドリル
資格を選ぶ↓

用語比較

スタッキングとバギングの違い|予測をつなぐ方法と分散・バイアスの狙い(G検定)

アンサンブル学習の問題では、バギング・ブースティング・スタッキングが並んで出てきます。スタッキングだけが「予測を次のモデルの入力にする」という別の形なのに、バギングの仲間として覚えてしまう人がいます。

バギングは、データの部分集合ごとに作ったモデルの予測を集約して分散を減らす。スタッキングは、複数のモデルの予測を最終推定器への入力にして、バイアスを減らすと覚えると、選択肢を切り分けられます。

このページは、scikit-learn公式ドキュメント「1.11. Ensembles」の記述をもとに比べます。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。G検定の一次情報確認日: 2026-10-02。

結論

バギング

元の訓練集合のランダムな部分集合の上でモデルを複数作り、個々の予測を集約して最終予測にする。ベース推定器の分散を減らす方法として使われる。

スタッキング

個々の推定器の予測を積み重ねて、最終推定器の入力にして予測を計算する。バイアスを減らす方法と説明され、最終推定器は交差検証で訓練される。

見分け方

「予測を集約」ならバギング、「予測を最終推定器に入力」ならスタッキング。

違いを表で確認

比較軸バギングスタッキング
予測のまとめ方バギング:個々の予測を集約して最終予測にするスタッキング:個々の予測を、最終推定器(final_estimator)への入力にして予測を計算する
学習データの扱いバギング:元の訓練集合のランダムな部分集合ごとにモデルを作るスタッキング:推定器は訓練データ全体で学習する。最終推定器は、学習に使っていない標本への予測で訓練する
主な狙いバギング:ベース推定器の分散を減らす。過学習を減らすスタッキング:バイアスを減らす
モデルの構成バギング:ブラックボックスな推定器(例:決定木)を、部分集合ごとに複数作るスタッキング:公式の例は、種類の違う3つの推定器(RidgeCV・LassoCV・KNeighborsRegressor)を並列に並べる

どこで迷っているかを切り分ける

01

問題文に「各モデルの予測を入力として別のモデルを学習する」とある人

予測が次のモデルの入力になるので、スタッキングです。バギングは予測を集約します。

02

「ランダムな部分集合ごとにモデルを作る」とある人

部分集合ごとにモデルを作って集約するのは、バギングの特徴です。

03

「分散を減らす」と「バイアスを減らす」で迷う人

公式ドキュメントは、バギングを分散を減らす方法、スタッキングをバイアスを減らす方法として説明します。

具体例で使い分ける

例 1

バギングの流れ

決定木を10本つくる場面を考えます。

  • 訓練集合からランダムな部分集合を10通り取り、それぞれで決定木を1本ずつ学習します。
  • 10本の予測を集約して、最終予測にします。

結論: 同じ種類のモデルを、別々の部分集合で作って集約するのがバギングです。

例 2

スタッキングの流れ

公式の例のように、RidgeCV・LassoCV・KNeighborsRegressorの3つを並べ、最終推定器にGradientBoostingRegressorを使う場面を考えます。

  • 3つの推定器は、入力データに対して並列に積み重ねます。訓練時は訓練データ全体で学習します。
  • 最終推定器は、3つの予測を入力にして最終的な予測を計算します。過学習を避けるため、cross_val_predictで内部的に得た、学習に使っていない標本への予測で訓練します。

結論: 種類の違うモデルの予測を、さらに別のモデルで束ねるのがスタッキングです。

例 3

選択肢で見分ける場合

「複数のモデルの予測を入力として、最終的な予測を行うモデルを学習する」という文を、バギングかスタッキングかで判断します。

  • 最終的な予測を行うモデルが別にあり、その入力が各モデルの予測です。
  • バギングには、予測を入力にする最終推定器はありません。予測を集約するだけです。

結論: 予測を入力にする最終推定器があれば、スタッキングです。

問題文から答えを選ぶ手順

  1. 1

    予測の使われ方を見る

    集約するならバギング、別のモデルの入力にするならスタッキングです。

  2. 2

    学習データの作り方を見る

    ランダムな部分集合ごとにモデルを作るならバギングです。

  3. 3

    狙いを見る

    分散を減らすならバギング、バイアスを減らすならスタッキングと説明されます。

試験での見分け方

  • 1バギングは、部分集合ごとのモデルの予測を集約して、分散を減らす。
  • 2スタッキングは、複数の推定器の予測を最終推定器の入力にして、バイアスを減らす。
  • 3スタッキングの最終推定器は、交差検証で訓練される。

誤答しやすい選択肢

スタッキングもバギングのように予測を集約するだけだと考える

修正: スタッキングは、予測を最終推定器の入力にします。最終推定器が別に学習される点が違います。

バギングがバイアスを減らす方法だと考える

修正: 公式ドキュメントは、バギングをベース推定器の分散を減らす方法として説明します。

スタッキングの最終推定器を、同じ訓練データへの予測でそのまま訓練すると考える

修正: 過学習を避けるため、cross_val_predictで内部的に得た、学習に使っていない標本への予測で訓練します。

確認問題

Q1個々のモデルの予測を、別のモデルへの入力にする手法は?

答え: スタッキング

予測を最終推定器の入力にして、最終的な予測を計算します。

Q2公式ドキュメントが、分散を減らす方法として説明するのは?

答え: バギング

ランダムな部分集合ごとにモデルを作り、予測を集約します。

Q3スタッキングの最終推定器は、何で訓練されますか?

答え: 交差検証

学習に使っていない標本への予測で訓練し、過学習を避けます。

到達チェック

  • バギングが予測を集約すると言える
  • スタッキングが予測を最終推定器の入力にすると言える
  • バギングは分散、スタッキングはバイアスを減らす方法だと言える

同じ資格で次に知りたいこと

よくある質問

Qスタッキングとバギングの違いは?

A

バギングは、部分集合ごとに作ったモデルの予測を集約します。スタッキングは、複数の推定器の予測を最終推定器の入力にして、最終的な予測を計算します。

Qバギングは何を減らす方法ですか?

A

scikit-learn公式ドキュメントは、ベース推定器の分散を減らす方法として説明します。過学習を減らすため、完全に成長させた決定木のような強く複雑なモデルと相性がよいとも述べます。

Qスタッキングの最終推定器はどう訓練しますか?

A

交差検証で訓練します。cross_val_predictで内部的に得た、学習に使っていない標本への予測を使い、過学習を避けます。

次に見る比較

執筆: ミナト編集部(運営者情報を見る)