機械学習の決定木について

AI実装検定のご案内

決定木は、データを特定の条件に基づいて分割しながら予測を行う機械学習モデルです。

木構造の中で、入力データが条件によって順に分岐していき、最終的に葉ノードに到達した時点の値(クラスまたは予測値)を出力します。

直感的で可視化しやすく、モデルの判断根拠が人間に理解しやすいという特徴を持ちます。

目次

決定木が選ばれる理由

可視化・説明性に優れる

どの条件によって予測が行われたかが明確であり、ブラックボックスになりにくい点は大きな利点です。

データの前処理が比較的少ない

標準化・正規化が不要であり、スケールの異なる特徴量でも問題なく扱えます。

非線形モデル

線形では表現できない複雑な規則性も、分岐を重ねることで表現できます。

特徴量間の相互作用を自動で捉える

複数の特徴量の組み合わせによる条件分岐が自動的に構築されます。

決定木のしくみ:分岐の選び方(不純度の最小化)

不純度の指標

決定木は、データの“混ざり具合”を表す 不純度(Impurity) をできるだけ小さくするための分割を選びます。

分類では主に以下が使われます。

  • ジニ不純度(Gini Impurity)
  • エントロピー(Entropy / Information Gain)

回帰では

  • 平均二乗誤差(MSE)

などが一般的です。

候補分割の探索

各特徴量に対して、あり得る分割点(しきい値)を総当たりで試し、もっとも不純度の改善が大きい分岐を採用します。

連続値の場合
データの値の中間点を候補として評価

カテゴリ値の場合
カテゴリの組み合わせを評価(実装による)

再帰的な分割

1つ分岐が決まれば、左右の節点について同じ手続きを繰り返し、木が深く成長していきます。

決定木のハイパーパラメータ

max_depth(最大深さ)

木の深さに上限を設定し、過学習を防ぎます。

min_samples_split / min_samples_leaf

分割に必要なサンプル数、葉ノードに必須のサンプル数。

値を大きくするとモデルがシンプルになり、汎化性能が向上しやすい。

max_features

分割に使用する特徴量の数を制限するパラメータ。

ランダムフォレストでよく使われるが単体の決定木でも設定可能。

決定木の注意点と弱点

過学習しやすい

木が深くなると、訓練データをほぼ完全に記憶するような状態になり、未知データへの汎化性能が低下します。

対策

  • max_depth を制限
  • min_samples_leaf を増やす
  • コスト複雑性剪定(CCP: Cost Complexity Pruning)

データが少し変わるだけで木の構造が大きく変わる

決定木は不安定なモデルであり、わずかなデータ変化で異なる分岐が選ばれることがあります。

このため、安定性の高いアンサンブル手法が生まれています。

境界が階段状になる

決定木は「しきい値による分割」しかできない構造上、滑らかな決定境界を表現するのは苦手です。

カテゴリ変数の扱いは実装依存)

理論上はカテゴリ変数も扱えるモデルですが、scikit-learn の決定木は数値入力のみを受け付けるため、カテゴリはエンコーディングが必要です。

  • ワンホットエンコーディング
  • ラベルエンコーディング(階層的意味付けに注意)

一方で、以下の実装はカテゴリ変数をネイティブサポートします。

  • CatBoost
  • LightGBM(カテゴリ型を指定した場合)
  • 一部の決定木実装

アンサンブル学習との関係

決定木は、単体で使うよりも、アンサンブル手法の構成要素として使うことが多くあります。

ランダムフォレスト

  • 多数の決定木をランダムに学習
  • 予測は多数決(分類)または平均(回帰)
  • 単一木の弱点(不安定・過学習)を克服

勾配ブースティング木(Gradient Boosting Trees)

  • XGBoost / LightGBM / CatBoost などに代表される
  • 弱い木を逐次強化し、高精度なモデルを構築
  • タブularデータに対して非常に強力で実務利用が多い

決定木の可視化

決定木は図にすると、モデルの判断プロセスが直感的に理解できます。

例(単純化したイメージ)

[Feature A < 5]
      /             \
   Yes               No
[Feature B < 2]   [Feature C > 10]
      ...               ...

これにより、どの特徴がどのような条件で予測に寄与しているかが明確になります。

まとめ

  • 決定木は条件分岐の集合として構築される、直感的で説明可能なモデル
  • 不純度(ジニ、エントロピー等)を最小化する分割を選びながら木を成長させる
  • ハイパーパラメータによって過学習対策が必須
  • カテゴリ変数の扱いは「実装依存」であり、scikit-learn ではエンコーディングが必要
  • アンサンブル(ランダムフォレスト/XGBoost等)で威力を最大化する

以上、機械学習の決定木についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次