機械学習の具体的手法
G検定のアンサンブル学習とバギング・ブースティング
G検定のシラバスには、アンサンブル学習、バギング、ブースティング、ランダムフォレストが並んでいます。アンサンブル学習は、複数のモデルを組み合わせて1つのモデルより良い予測を得る考え方です。覚えるのは、バギングはモデルを並べて独立に作り、ブースティングは順番に作るという違いです。
このページは、多数決の確率とブースティングの残差を小さな数値で計算し、3つの手法の違いを確かめます。
この記事の目次
公式情報の確認
試験日、料金、申込条件、試験方式など変動する情報は、公式情報を最終確認してください。 当サイトの一次情報確認日: 2026-10-02。
試験の出題範囲・実施要項は変動するため、受験前に公式情報を確認してください。
結論
- アンサンブル学習 = 複数のモデルの予測を組み合わせて、汎化性能や頑健さを高める
- バギング = データの部分集合ごとに独立にモデルを作り、予測を平均・多数決で集める。分散を下げる
- ランダムフォレスト = バギングした決定木に、分割ごとの特徴量のランダムな絞り込みを足したもの
- ブースティング = モデルを順番に作り、前までの誤りを直すように足していく
- 効果の条件 = 各モデルの誤りが似ていないこと。同じ誤りを重ねても多数決は強くならない
多数決で精度が上がる計算
scikit-learnの公式ドキュメントは、アンサンブル法を、複数の基本モデルの予測を組み合わせて、単独のモデルより汎化性能と頑健さを高める方法と説明しています。なぜ組み合わせると良くなるのかを、多数決で計算します。
正解率が70%のモデルが3つあり、それぞれが他のモデルと無関係に間違えるとします(説明用の仮定です)。3つの多数決が正解になるのは、2つ以上が正解のときです。
| 場合 | 確率の計算 | 確率 | 多数決の結果 |
|---|---|---|---|
| 3つとも正解 | 0.7³ | 0.343 | 多数決も正解 |
| ちょうど2つが正解 | 3×0.7²×0.3 | 0.441 | 多数決も正解 |
| ちょうど1つが正解 | 3×0.7×0.3² | 0.189 | 多数決は不正解 |
| 3つとも不正解 | 0.3³ | 0.027 | 多数決も不正解 |
多数決が正解になる確率は0.343+0.441=0.784で、単独の0.7より約8ポイント上がります。ただし、これは3つの誤りが独立のときの値です。3つが同じ問題で同じ間違いをするなら、多数決も同じ間違いをします。そのため、アンサンブルでは「異なる誤りをするモデルを作ること」が要になります。用語はアンサンブル学習の用語集にもあります。
バギングとランダムフォレスト
公式ドキュメントによると、バギングは、元の訓練データのランダムな部分集合ごとに基本モデルを複数作り、それぞれの予測を集めて最終的な予測にします。ねらいは、決定木のようなモデルの分散を下げることです。モデルを変えずに使えるため、過学習を抑える簡単な方法になります。
| 手法 | モデルの作り方 | 予測のまとめ方 | ねらい |
|---|---|---|---|
| バギング | 元のデータのランダムな部分集合ごとに、独立にモデルを作る | 予測を平均(分類では多数決)する | 分散を下げ、過学習を抑える |
| ランダムフォレスト | バギングの決定木に加え、各分割で使う特徴量もランダムに絞る | 木の予測を平均(多数決)する | 木どうしの誤りを似せず、分散を下げる |
| ブースティング | モデルを1つずつ順番に作り、前までの誤りを直すように次を足す | 各モデルの出力を足し合わせる | モデルを足すごとに誤差を減らす |
ランダムフォレストでは、各木をブートストラップ標本で作り、各分割で考える特徴量もランダムな部分集合に限ります。公式ドキュメントは、この2つのランダムさの目的を、森全体の分散を下げることだと述べています。単独の決定木は分散が大きく過学習しやすいのですが、ランダムさによって木どうしの予測の誤りが少しずつ違うものになり、平均すると誤りの一部が打ち消し合います。決定木の分割の選び方は決定木とジニ係数のページで確かめられます。
ブースティングの残差の計算
勾配ブースティングは、公式ドキュメントによると、予測が弱学習器(小さな決定木)の和で表され、F_m(x)=F_(m−1)(x)+h_m(x)のように、新しい木h_mが直前までのアンサンブルの損失を小さくするよう作られます。さらに、各木の寄与に学習率という係数を掛けて縮める方法も紹介されています。
二乗誤差の場合は、正解と現在の予測の差(残差)を次の木が予測する形になります。正解が100、最初の予測が60、学習率が0.5で、各木が残差をちょうど言い当てると仮定した計算です(説明用の架空の値です)。
| 段階 | 予測の更新 | 残差 | 足した木 |
|---|---|---|---|
| 初期(平均で予測) | 60 | 100−60=40 | — |
| 1本目の木を足す | 60+0.5×40=80 | 100−80=20 | 木は残差40を予測 |
| 2本目の木を足す | 80+0.5×20=90 | 100−90=10 | 木は残差20を予測 |
| 3本目の木を足す | 90+0.5×10=95 | 100−95=5 | 木は残差10を予測 |
木を足すたびに残差が40、20、10、5と半分ずつ減ります。学習率を1にすれば1本目で残差が0になりますが、公式ドキュメントは、小さな学習率のほうがテスト誤差が良くなるという経験的な知見を紹介しています。木を順番に作るため、バギングのように並べて独立に作ることはできません。過学習を抑える考え方は過学習と正則化のページにまとめています。
間違えやすい点
取り違えを、このページの例で4つ挙げます。
- ブースティングも独立に作ると考える: ブースティングは前のモデルの誤りを見て次を作るため、順番が必要です。
- ランダムフォレストをバギングそのものと考える: 特徴量のランダムな絞り込みがある点が違います。
- 多数決なら必ず精度が上がると考える: 計算は誤りが独立という仮定付きで、似た誤りが多いと効果は小さくなります。
- バギングは偏り、ブースティングは分散と取り違える: バギングは分散を下げる手法として説明されます。
「並列に独立」はバギング・ランダムフォレスト、「逐次に誤りを修正」はブースティングと対にして覚えます。
問題文から読み取る
問題文の言い回しから、手法を絞れます。このページの整理から導いた読み方で、出題を予想するものではありません。
- 「ブートストラップ標本ごとに学習し、予測を平均する」とあれば、バギング
- 「各分割で特徴量をランダムに選ぶ」とあれば、ランダムフォレスト
- 「前のモデルの誤りを重視して次のモデルを学習する」とあれば、ブースティング
- 「複数モデルの予測を組み合わせる」だけなら、アンサンブル学習の総称
G検定の学習に使う書籍(Amazon)
試験範囲を通して読むときの1冊です。読んだ章は、このサイトの章別問題で確かめられます。
よくある質問
バギングとブースティングの違いは何ですか?
モデルの作り方です。バギングは元のデータの部分集合ごとに独立にモデルを作り、予測を集めて分散を下げます。ブースティングは前のモデルの誤りを直すように、モデルを順番に作ります。scikit-learnの公式ドキュメントも、勾配ブースティングは新しい木が直前までのアンサンブルの損失を小さくするように作られると説明しています。
ランダムフォレストは、バギングと何が違いますか?
ランダムフォレストは、各木をブートストラップ標本(重複を許して取り出した標本)で作る点はバギングと同じですが、各分割で考える特徴量もランダムな部分集合に絞ります。公式ドキュメントは、この2つのランダムさが森全体の分散を下げる目的だと述べています。
アンサンブルにすると、必ず精度が上がりますか?
必ずではありません。このページの多数決の計算は、3つのモデルの誤りが独立だという仮定を置いています。誤りが同じ方向に偏っていれば、効果は小さくなります。公式ドキュメントも、ランダムフォレストは多様な木を組み合わせて分散を下げるが、バイアスが少し増えることもあると述べています。
ブースティングの学習率は、何をするものですか?
新しく足す木の寄与を一定の割合に縮める係数です。公式ドキュメントは、各弱学習器の寄与に定数を掛ける縮小(shrinkage)で、学習率が小さいほど同じ訓練誤差に必要な木の数が増えると説明しています。このページの例では0.5を使いました。
