はじめに
機械学習を使った売上予測、需要予測、顧客分析、在庫分析などを検討していると、「バギング」や「勾配ブースティング」という言葉を目にすることがあります。
どちらも、複数のモデルを組み合わせて予測性能の向上を目指すアンサンブル学習の考え方です。
ただし、両者は同じものではありません。
バギングは、学習データの揺らぎに対して複数のモデルを作り、予測を平均化・多数決することで安定性を高める考え方です。
一方、勾配ブースティングは、損失関数を小さくする方向に弱いモデルを逐次的に追加し、前のモデルで説明しきれなかった部分を補っていく考え方です。
実務では、「勾配ブースティングの方が高精度だからよい」「バギングは古いから不要」といった単純な理解は危険です。
重要なのは、どちらが優れているかではなく、データの性質、目的変数、評価指標、ノイズ、説明のしやすさ、運用方法に合わせて選ぶことです。
本記事では、バギングと勾配ブースティングの違い、理論的な背景、メリット・デメリット、ビジネスデータ分析での使い分けを論文ベースで整理します。
勾配ブースティングとバギングは何が違うのか
まず、全体像を整理します。
| 観点 | バギング | 勾配ブースティング |
|---|---|---|
| 基本思想 | 複数モデルの予測を集約して安定化する | 弱いモデルを逐次的に追加して損失を下げる |
| 学習の流れ | 複数モデルを並列的に学習しやすい | 前のモデルの結果を踏まえて逐次的に学習する |
| データの使い方 | ブートストラップ再標本化したデータを使う | 同じデータに対して損失の改善方向を学習する |
| 集約方法 | 回帰では平均、分類では多数決など | 加法モデルとして予測を足し合わせる |
| 理論上の主な狙い | 予測のばらつき、分散を抑える | 損失関数を小さくし、予測誤差を減らす |
| 注意点 | 元のモデルの偏りが強い場合、改善が限定的なことがある | チューニング次第で過学習しやすい |
バギングは、Breimanによって提案されたBootstrap Aggregatingの考え方です。Breimanは、複数バージョンの予測器を作り、それらを集約する方法としてバギングを説明し、特に不安定な予測手法に有効であると述べています(Breiman, 1996)。
勾配ブースティングは、Friedmanによって、損失関数を最小化するための加法モデル、または関数近似の枠組みとして整理されました(Friedman, 2001)。
両者はどちらもアンサンブル学習ですが、目的と考え方が異なります。
バギングは「揺らぎをならして安定させる」考え方に近く、勾配ブースティングは「損失を少しずつ改善する」考え方に近いといえます。
アンサンブル学習とは何か
アンサンブル学習とは、複数のモデルを組み合わせて予測を行う機械学習の考え方です。
単一のモデルだけで予測するのではなく、複数のモデルの結果を統合することで、予測性能や安定性の向上を目指します。
たとえば、複数人で判断した方が、1人だけで判断するより安定する場合があります。
機械学習でも、1つのモデルだけに依存するより、複数のモデルを組み合わせた方が、データの揺らぎや偶然の影響を抑えられる場合があります。
ただし、アンサンブル学習は「複数モデルを使えば必ず良くなる」というものではありません。
元のモデルが同じような誤りをしている場合、単純に数を増やしても改善は限定的です。
また、モデルが複雑になるほど、説明や運用、更新の負荷も増えます。
バギングとは何か
バギングは、Bootstrap Aggregatingの略です。
Bootstrapとは、元の学習データから重複を許してデータを再標本化する方法です。
たとえば、100件のデータがある場合、その100件から重複を許して100件を取り出します。同じデータが複数回選ばれることもあれば、まったく選ばれないデータもあります。
バギングでは、このようなブートストラップ標本を複数作り、それぞれでモデルを学習します。
その後、回帰問題であれば予測値を平均し、分類問題であれば多数決などで結果を集約します。
処理の流れは次のように整理できます。
- 元データからブートストラップ標本を複数作る
- それぞれの標本でモデルを学習する
- 複数モデルの予測を出す
- 回帰では平均、分類では多数決などで集約する
バギングの重要な点は、モデルの不安定さを抑えることです。
ここでいう不安定さとは、学習データが少し変わるだけで予測結果が大きく変わる性質を指します。
Breimanは、バギングが不安定な学習手法に対して特に効果を持つことを示しています(Breiman, 1996)。
実務に置き換えると、データの一部が変わるだけで予測が大きく変わる場合、バギングによって予測をならし、安定させることが期待できます。
勾配ブースティングとは何か
勾配ブースティングは、弱学習器と呼ばれる比較的単純なモデルを、逐次的に追加していく手法です。
直感的には、最初のモデルで説明しきれなかった誤差を、次のモデルで補っていくイメージです。
ただし、理論的には「残差を学習する手法」とだけ説明すると不十分です。
勾配ブースティングは、損失関数を小さくする方向に関数を追加していく加法モデルとして整理されます。
損失関数とは、予測値と実際の値のずれを測る関数です。
回帰問題では二乗誤差、分類問題では対数損失などが使われることがあります。
Friedmanは、勾配ブースティングを、任意の微分可能な損失関数を最小化するための勾配降下法として捉えられる枠組みで整理しました(Friedman, 2001)。
処理の流れを簡略化すると、次のようになります。
- 最初の予測モデルを作る
- 現在の予測でどのような誤差が残っているかを見る
- 損失関数が小さくなる方向に弱学習器を追加する
- これを複数回繰り返す
- 各モデルの予測を足し合わせて最終予測を作る
勾配ブースティングでは、学習率、反復回数、弱学習器の複雑さが重要になります。
学習率を小さくすると、1回あたりの更新は控えめになりますが、多くの反復が必要になることがあります。
反復回数が多すぎたり、弱学習器が複雑すぎたりすると、学習データに過度に適合し、未知データでの性能が落ちる可能性があります。
この状態を過学習と呼びます。
バイアス・バリアンスの観点で見る違い
バギングと勾配ブースティングの違いを理解するうえで、バイアスとバリアンスの考え方が役立ちます。
バイアスとは、モデルが単純すぎたり、仮定が強すぎたりすることで、本来の構造を捉えきれない誤差です。
バリアンスとは、学習データの変化に対して予測が大きく変わってしまう不安定さです。
Gemanらは、学習問題におけるバイアスとバリアンスのジレンマを整理し、予測誤差を考えるうえで両者のバランスが重要であることを示しました(Geman et al., 1992)。
バギングは、一般にバリアンスを下げる手法として説明されます。
複数のモデルの予測を平均化することで、個々のモデルが持つ揺らぎをならすためです。
一方、勾配ブースティングは、弱学習器を逐次的に追加し、予測の誤差を減らしていくため、バイアスを下げる手法として説明されることがあります。
ただし、この説明は単純化です。
実際には、モデルの種類、データの性質、チューニング、損失関数によって、バイアスとバリアンスへの影響は変わります。
そのため、実務では「バギングは分散、ブースティングはバイアス」と丸暗記するのではなく、学習データと検証データでどのような挙動を示すかを確認することが重要です。
バギングのメリット・デメリット
バギングのメリット
バギングの主なメリットは、予測の安定性を高めやすいことです。
特に、学習データの変化に敏感なモデルでは、複数モデルの予測を集約することで、単一モデルより安定した結果が得られる場合があります。
また、複数のモデルを比較的独立に学習できるため、処理を並列化しやすい点も特徴です。
| メリット | 内容 |
|---|---|
| 予測が安定しやすい | 複数モデルの予測を集約するため、データの揺らぎの影響を抑えやすい |
| 過学習を抑えやすい場合がある | 単一モデルの不安定な予測をならす効果がある |
| 並列化しやすい | 各モデルを独立に学習しやすい |
| 直感的に説明しやすい | 複数モデルの平均・多数決として説明できる |
バギングのデメリット
一方で、バギングは万能ではありません。
元のモデルが単純すぎて、そもそもデータの構造を捉えられていない場合、複数モデルを平均しても改善は限定的です。
また、複数モデルを使うため、単一モデルよりも計算量や説明負荷が増える場合があります。
| デメリット | 内容 |
|---|---|
| バイアスが高いモデルには効果が限定的 | 元のモデルが構造を捉えられない場合、平均しても改善しにくい |
| モデルが複雑になる | 複数モデルを管理する必要がある |
| 説明が単一モデルより難しくなる | 個別予測の理由を説明しにくい場合がある |
| データやモデルによって効果が変わる | 不安定な学習器でなければ効果が小さいこともある |
勾配ブースティングのメリット・デメリット
勾配ブースティングのメリット
勾配ブースティングの大きな特徴は、損失関数を逐次的に改善する点です。
弱学習器を少しずつ追加することで、単純なモデルだけでは捉えにくい非線形な関係や変数間の相互作用を表現しやすくなります。
Friedmanは、勾配ブースティングを一般的な損失関数に対する関数近似の枠組みとして整理しており、回帰や分類など幅広い問題に応用できる考え方を示しています(Friedman, 2001)。
| メリット | 内容 |
|---|---|
| 予測性能を高めやすい | 誤差を逐次的に補うため、高い性能を出しやすい |
| 柔軟な損失関数に対応しやすい | 問題に応じた損失関数を扱える |
| 複雑な関係を捉えやすい | 非線形性や相互作用を表現しやすい |
| 構造化データで使いやすい | 売上、顧客、在庫などのテーブルデータに適用しやすい |
勾配ブースティングのデメリット
一方で、勾配ブースティングは調整すべき要素が多く、過学習にも注意が必要です。
学習率、反復回数、弱学習器の複雑さを適切に設定しないと、学習データにはよく当てはまっても、未知データでは性能が落ちる場合があります。
Friedmanは、Stochastic Gradient Boostingにおいて、データの一部をサンプリングして各反復で使うことで、精度や計算面の改善を狙う方法を提案しています(Friedman, 2002)。
| デメリット | 内容 |
|---|---|
| チューニングが必要 | 学習率、反復回数、木の深さなどの調整が必要 |
| 過学習に注意が必要 | 反復回数やモデル複雑度が高いと学習データに寄りすぎる |
| 学習が逐次的 | バギングより並列化しにくい部分がある |
| 説明が難しくなる場合がある | 単一モデルより構造が複雑になりやすい |
| データ品質の影響を受ける | ノイズや外れ値がある場合、慎重な検証が必要 |
ビジネスデータ分析での使い分け
ビジネスで重要なのは、手法名ではなく、分析目的とデータの性質に合っているかです。
たとえば、売上予測や需要予測では、過去の売上、広告費、季節性、在庫、キャンペーン情報などを説明変数として使うことがあります。
顧客反応予測では、過去購買回数、平均購入金額、最終接触日、メール開封率などを使うことがあります。
このようなデータに機械学習を使う場合、次の観点で手法を比較するとよいでしょう。
| 判断観点 | バギングが向きやすい場合 | 勾配ブースティングが向きやすい場合 |
|---|---|---|
| 予測の安定性 | データの揺らぎで結果が変わりやすい場合 | 安定性より精度改善を重視する場合 |
| ノイズ | ノイズの影響をならしたい場合 | ノイズに過剰適合しないよう慎重に調整できる場合 |
| チューニング負荷 | できるだけ調整を抑えたい場合 | パラメータ調整に時間をかけられる場合 |
| 予測性能 | まず安定した基準モデルを作りたい場合 | 精度をさらに高めたい場合 |
| 説明・運用 | 比較的直感的に説明したい場合 | 複雑でも検証体制を整えられる場合 |
ただし、この表は一般的な目安です。
実際には、データを分けて検証し、評価指標を決め、複数の手法を比較する必要があります。
売上予測であれば、平均絶対誤差、二乗平均平方根誤差、予測誤差率などを見ることがあります。
分類問題であれば、正解率、適合率、再現率、F1スコアなどを確認します。
重要なのは、経営判断や業務判断に使ううえで、どの誤差を小さくしたいのかを先に決めることです。
実務で使う際の注意点
手法名だけで選ばない
「勾配ブースティングを使っています」という説明だけでは不十分です。
どの目的変数を予測しているのか、どのデータを使っているのか、どの評価指標で比較しているのかを確認する必要があります。
データ品質を確認する
機械学習モデルは、データの品質に強く影響されます。
欠損値、外れ値、入力ミス、集計単位の不統一、期間のズレなどがあると、モデルの性能や解釈に影響します。
過学習を検証する
学習データでは高精度でも、未知データで性能が落ちる場合があります。
そのため、学習データと検証データを分ける、交差検証を行う、期間を分けて検証するなどの確認が必要です。
精度だけで判断しない
モデル精度が高くても、業務上使いにくい場合があります。
たとえば、更新に時間がかかる、担当者が説明できない、現場で入力できない変数を使っている、データ連携が難しい、といった問題です。
説明可能性と運用性を見る
ビジネスで使うモデルは、単に当たればよいわけではありません。
なぜその予測になったのか、どの程度信頼できるのか、いつ更新するのか、誰が運用するのかを整理する必要があります。
論文で見るバギング・ブースティングの基礎
Breiman. 1996
Breimanは、Bagging Predictorsにおいて、ブートストラップ標本から複数の予測器を作り、それらを集約する方法を提案しました。
同論文では、バギングが不安定な予測手法に有効であることが示されています(Breiman, 1996)。
実務では、データの一部が変わると結果が揺れやすいモデルに対して、予測を安定させる考え方として理解できます。
Freund and Schapire. 1997
Freund and Schapireは、Boostingの理論的な基礎となるAdaBoostの枠組みを示しました。
この研究は、複数の弱い学習器を組み合わせることで強い学習器を構成する考え方に大きな影響を与えています(Freund and Schapire, 1997)。
Friedman. 2001
Friedmanは、Greedy Function Approximation: A Gradient Boosting Machineにおいて、勾配ブースティングを損失関数を最小化する関数近似の枠組みとして整理しました。
この考え方により、勾配ブースティングは単なる残差学習ではなく、一般的な損失関数に対する加法モデルとして理解できます(Friedman, 2001)。
Friedman. 2002
Friedmanは、Stochastic Gradient Boostingにおいて、各反復でデータの一部を使うことで、計算負荷や予測性能の改善を狙う方法を提案しました(Friedman, 2002)。
これは、勾配ブースティングにおいても過学習や計算負荷を意識した設計が重要であることを示す文献として参考になります。
Geman et al. 1992
Geman et al.は、学習問題におけるバイアス・バリアンスのジレンマを整理しました。
バギングやブースティングを理解するうえでも、予測誤差をバイアスとバリアンスの観点から見ることは有用です(Geman et al., 1992)。
モデル選定前のチェックリスト
バギングや勾配ブースティングを使う前に、次の点を確認するとよいでしょう。
| チェック項目 | 確認内容 |
|---|---|
| 目的変数 | 何を予測したいのか明確か |
| 説明変数 | 予測時点で利用できる変数か |
| データ量 | モデルを学習・検証できる量があるか |
| データ品質 | 欠損値、外れ値、入力ミスを確認したか |
| 評価指標 | どの誤差を小さくしたいのか決めているか |
| 検証設計 | 学習データと検証データを分けているか |
| 過学習 | 未知データで性能が落ちていないか |
| 運用性 | 現場で更新・保守できるか |
| 説明可能性 | 社内説明に必要な粒度で説明できるか |
| 意思決定 | モデル結果をどう業務判断に使うか決まっているか |
機械学習では、どの手法を使うかよりも、何を予測し、どのデータを使い、どのように検証し、どう業務に組み込むかが重要です。
まとめ:手法名よりも目的・データ・検証設計が重要
バギングと勾配ブースティングは、どちらもアンサンブル学習の代表的な考え方です。
バギングは、ブートストラップ再標本化によって複数モデルを作り、平均化や多数決で予測を安定させる方法です。
勾配ブースティングは、損失関数を小さくする方向に弱学習器を逐次的に追加する加法モデルです。
バギングは、主に予測のばらつきを抑える考え方として説明しやすい手法です。
勾配ブースティングは、高い予測性能を狙いやすい一方で、学習率、反復回数、モデルの複雑さなどの調整が重要になります。
実務では、どちらが優れているかではなく、次の点を整理することが重要です。
- 何を予測したいのか
- どのデータを使えるのか
- どの評価指標で比較するのか
- 過学習をどう検証するのか
- 結果をどのように説明するのか
- 現場で運用・更新できるのか
自社データにバギングや勾配ブースティングのような機械学習手法が向いているか相談したい場合は、SCI総合研究所の KAMUSHIRUBE をご活用ください。
売上予測、需要予測、顧客分析、在庫分析などについて、分析設計からモデル比較、可視化、レポート化まで進めたい場合は、RASHINRA もご検討ください。
お問い合わせは、お問い合わせフォーム よりご連絡ください。
参考文献
- Breiman. 1996. Bagging Predictors. Machine Learning. Vol. 24. Issue 2. pp. 123-140. https://doi.org/10.1023/A:1018054314350
- Freund and Schapire. 1997. A Decision-Theoretic Generalization of On-Line Learning and an Application to Boosting. Journal of Computer and System Sciences. Vol. 55. Issue 1. pp. 119-139. https://doi.org/10.1006/jcss.1997.1504
- Friedman. 2001. Greedy Function Approximation: A Gradient Boosting Machine. The Annals of Statistics. Vol. 29. Issue 5. pp. 1189-1232. https://doi.org/10.1214/aos/1013203451
- Friedman. 2002. Stochastic Gradient Boosting. Computational Statistics & Data Analysis. Vol. 38. Issue 4. pp. 367-378. https://doi.org/10.1016/S0167-9473(01)00065-2
- Geman et al. 1992. Neural Networks and the Bias/Variance Dilemma. Neural Computation. Vol. 4. Issue 1. pp. 1-58. https://doi.org/10.1162/neco.1992.4.1.1

