前のモデルの間違いを、次のモデルが少しずつ直していく——この「反省を繰り返す学習」を数学的に洗練させたのが勾配ブースティングです。XGBoostやLightGBMといった実装は、表形式データの予測コンペで長年トップに君臨してきました。G検定では「3つの手法の組み合わせ」という構成が問われます。
📖 ひと言でいうと
勾配ブースティング(勾配ブースティング決定木、GBDT)は、決定木を1本ずつ順番に追加し、前までの木の予測誤差を次の木が埋めるように学習を進めるアンサンブル手法です。誤差をどう減らすかの指針として勾配降下法の考え方を使います。
例えるなら、テストの答案を採点して間違えた問題だけを重点的に復習する受験生です。1回目の答案(1本目の木)の間違いを分析し、2回目はその弱点を埋める勉強(2本目の木)をする。これを何十回も繰り返すと、最初は不完全だった答案が徐々に完成度を高めていきます。
🖼 1枚でわかる勾配ブースティング
📘 公式テキストの説明
勾配ブースティング決定木(Gradient Boosting Decision Tree: GBDT)とは、「勾配降下法(Gradient)」、「アンサンブル学習(Boosting)」、「決定木(Decision Tree)」の3つの手法を組み合わせた学習の手法。この手法では、決定木を逐次的に学習させ、前の決定木の誤りを次の決定木が修正するようにしていく。勾配降下法は、学習の過程で目的関数を最小化する方向へパラメータを更新していくことで、学習器の性能を向上させる役割を果たす。XGBoostやLightGBM、CatBoostなどがある。
名前のとおり「Gradient(勾配)+Boosting(ブースティング)+Decision Tree(決定木)」の3要素からできています。ブースティングが「逐次的に学習して前の誤りを直す」という枠組みを与え、その中身の学習器として決定木を使い、「どの方向に直せば誤差が最も減るか」を勾配降下法の考え方で決める、という役割分担です。3要素それぞれの英単語と役割の対応づけが、そのまま試験の得点ポイントになります。
🔍 しっかり理解する
学習の流れ:残った誤差を次の木が引き受ける
勾配ブースティングの学習は次のように進みます。まず1本目の決定木がおおまかな予測をします。当然、実際の値との間に誤差(残差)が残ります。2本目の木は、元のデータの正解そのものではなく「1本目が残した誤差」を予測するように学習します。以降の木も同じで、それまでの合計予測に残っている誤差を埋める係を担当します。最終的な予測は、全部の木の出力を足し合わせたものです。
「勾配」はどこに出てくるのか
勾配降下法は、目的関数(誤差の大きさを表す関数)を最小化する方向へパラメータを少しずつ更新していく最適化手法で、ニューラルネットワークの学習でおなじみです。勾配ブースティングでは、この考え方を「次の木に何を学習させるか」の決定に使います。
目的関数を最小化する方向、すなわち勾配が示す「誤差が最も減る方向」を計算し、その方向を新しい決定木に近似させるのです。誤差が二乗誤差の場合、この「方向」はちょうど残差(正解−現在の予測)に一致します。つまり「残差を次の木が学習する」という直感的な説明は、勾配降下法を目的関数の最小化に使っていることの具体例になっています。
XGBoost・LightGBM・CatBoost
公式テキストに挙げられている3つは、いずれも勾配ブースティングの高速・高精度な実装ライブラリです。XGBoostは正則化や欠損値処理を組み込んだ定番実装、LightGBMは大規模データでも高速に動くMicrosoft発の実装、CatBoostはカテゴリ変数の扱いに強い実装として知られます。試験では「これらは勾配ブースティング系の実装である」という対応づけができれば十分です。ニューラルネットワークのライブラリ(TensorFlowなど)と混ぜた選択肢に注意しましょう。
💡 具体例で考える
データ分析コンペティションのKaggleでは、顧客の購買予測や保険金請求の予測といった表形式(テーブル)データの課題で、勾配ブースティング系のモデルが長年にわたり上位常連です。画像や自然言語ではディープラーニングが圧倒的ですが、行と列で表される業務データでは、GBDTが少ない調整で高精度を出せるため「まず試すべき本命」として扱われています。
実務では、金融機関の与信スコアリングやECサイトの需要予測が典型例です。たとえば与信では、年収・勤続年数・借入履歴など数十の特徴量から貸し倒れ確率を予測します。1本目の木が「年収と借入額」でおおまかに判定し、そこで拾えなかった「若いが勤続が長い人は優良」のような細かいパターンを後続の木が順に補正していく、というイメージです。
⚠️ よくある誤解・紛らわしい用語
- ランダムフォレスト(バギング)との混同 — 最頻出の引っかけです。ランダムフォレストは多数の木を「並列」に独立して学習させ多数決しますが、勾配ブースティングは木を「逐次的」に追加し前の誤りを修正します。「並列か逐次か」で見分けます。
- 「勾配降下法はニューラルネットワーク専用」は誤り — 目的関数を最小化する汎用の最適化手法であり、勾配ブースティングでも学習の中核を担います。
- ブースティング全般との関係 — 勾配ブースティングはブースティングという枠組みの一種です。同じブースティング系のAdaBoost(誤分類したデータの重みを増やす方式)と、勾配(残差)を使うGBDTを区別しましょう。
- GBDTの略の分解 — Gradient=勾配降下法、Boosting=アンサンブル学習(ブースティング)、Decision Tree=決定木。どれか1つを別の用語(例: バギング)に差し替えた選択肢が作られやすいポイントです。
📝 試験でのポイント
- 「3つの手法の組み合わせ」を選ばせる問題では、勾配降下法・ブースティング・決定木の3点セットを確実に。
- 「前の決定木の誤りを次の決定木が修正する」「逐次的」という表現は勾配ブースティングを指すサインです。
- XGBoost・LightGBM・CatBoostの名前を見たら勾配ブースティング系と即断できるようにしておきましょう。
- バギング(並列・多数決)との対比問題は定番です。逐次=ブースティング、並列=バギングの軸で整理してください。
📚 まとめ
勾配ブースティング(GBDT)は、勾配降下法・ブースティング・決定木の3つを組み合わせた手法で、決定木を逐次的に追加しながら前の木の誤りを次の木が修正していきます。勾配降下法は目的関数を最小化する方向へ更新を導く役割を担います。代表的な実装にXGBoost・LightGBM・CatBoostがあり、表形式データの予測では現在も第一線です。試験では「逐次か並列か」でバギングと見分けることが最大のポイントです。
