決定木は、特徴量に関する条件分岐を木構造で積み重ねて予測を行う教師あり学習の手法です。単体でも解釈しやすいモデルですが、多数の木を組み合わせるRandom Forestや勾配ブースティングの構成要素として、現在も表形式データで広く使われています。

※この項目はシラバス2026では出題対象外(オプション)ですが、前提知識として重要なため解説します。

📖 概要

決定木は「ある特徴量がしきい値以上か未満か」といった単純な質問を根から葉に向かって繰り返し、データを段階的に分割していくモデルです。学習では、各ノードで「分割後のデータができるだけ純粋になる(同じクラスが集まる)」ような特徴量としきい値を貪欲に選びます。この純度を測る代表的な指標がGini係数(ジニ不純度)です。

決定木は出力の種類によって分類木と回帰木に分かれ、両方を統一的に扱う代表的なアルゴリズムがCARTです。単体の決定木は解釈性が高い一方、深くすると過剰適合しやすくバリアンス(予測のばらつき)が大きいという弱点があります。

この弱点を補うのがアンサンブル学習です。複数のモデルを組み合わせて予測を安定・強化する枠組みで、代表的な戦略として並列に多様な木を作って平均するバギング(その発展がRandom Forest)と、直列に弱いモデルを積み重ねて誤りを順次修正するブースティング(その発展が勾配ブースティング)があります。

🔍 キーワード解説

分類木・回帰木

分類木・回帰木は、決定木の2つのタイプです。分類木は葉ノードでクラスラベル(多数決や割合)を出力し、回帰木は葉ノードに属する訓練データの目的変数の平均値などを出力して連続値を予測します。どちらも「領域を矩形に区切り、各領域で一定の予測を返す」区分的なモデルと見ることができます。

CART

CART(Classification and Regression Trees)は、決定木を構築する代表的なアルゴリズムで、名前の通り分類と回帰の両方に対応します。各ノードを常に2分岐(二分木)で分割し、分類ではGini係数、回帰では二乗誤差の減少を基準に最良の分割を選びます。深く育てた木を後から剪定(プルーニング)して複雑さを調整する枠組みも含みます。scikit-learnの決定木もCART系の実装です。

Gini係数

Gini係数(ジニ不純度)は、ノード内のクラスの混ざり具合を測る指標で、クラスkの割合を p_k とすると Gini = 1 - Σ p_k^2 で定義されます。ノードが単一クラスのみなら0(最も純粋)で、クラスが均等に混ざるほど大きくなります。決定木の学習では、分割によるGini係数の(加重平均での)減少が最大になる分割を選びます。同様の目的でエントロピーに基づく情報利得が使われることもあります。

アンサンブル

アンサンブル学習は、複数のモデル(弱学習器)の予測を多数決や平均で統合し、単体より高い性能を得る枠組みです。各モデルの誤りが互いに独立に近いほど、統合による誤り相殺の効果が大きくなるため、モデル間の多様性が重要です。決定木は不安定(データの変化で構造が変わりやすい)ゆえに多様性を作りやすく、アンサンブルの部品として特に相性が良いとされます。

バギング

バギング(Bagging; Bootstrap Aggregating)は、訓練データからブートストラップサンプリング(重複を許す復元抽出)で複数のデータセットを作り、それぞれで独立にモデルを学習して予測を平均(分類では多数決)する方法です。並列に学習でき、主にバリアンスを下げる効果があります。Random Forestはバギングに加えて、各分割で使う特徴量候補もランダムに制限することで木同士の相関をさらに下げた手法です。

ブースティング

ブースティングは、弱学習器を逐次的に追加し、前段までのモデルが誤ったデータや残差を重点的に学習させて全体を強化する方法です。代表例のAdaBoostは誤分類したサンプルの重みを増やして次の学習器を訓練します。勾配ブースティングは、損失関数の勾配(残差に相当)に対して新しい木をフィットさせていく一般化で、XGBoostやLightGBMなどの実装が広く使われています。ブースティングは主にバイアスを下げる効果がある一方、逐次学習のため並列化しにくく、過剰適合への注意が必要とされます。

📝 試験でのポイント

💡 ポイント
  • Gini係数の定義式 1 - Σ p_k^2 を使った具体的な計算(分割前後の不純度の比較)が問われやすいです
  • バギング=並列・復元抽出・バリアンス低減、ブースティング=逐次・誤り重視・バイアス低減、という対比は最頻出です
  • Random Forest =「バギング+特徴量のランダム選択」という2つのランダム性の組み合わせを押さえましょう
  • CARTが二分木で分類・回帰の両方を扱うこと、分類木と回帰木の出力の違いを整理しておきましょう
  • アンサンブルは深層学習の章(スタッキング等)でも再登場するため、ここで基礎を固めておくと効率的です

📚 まとめ

決定木はGini係数などの不純度を減らす分割を貪欲に繰り返すモデルで、CARTが代表的アルゴリズムです。単体では過剰適合しやすいため、バギング(→Random Forest)やブースティング(→勾配ブースティング)といったアンサンブルで弱点を補います。「並列に平均するか、直列に修正するか」という2つの戦略の違いを確実に押さえましょう。