決定木における不純度とは、あるノード(分岐点)に集まっているデータが、どれだけバラバラな状態かを表す考え方です。
クラス分類を例にすると、
- 1つのクラスだけが集まっている状態
→ とても「純粋」 - 複数のクラスが同じくらい混ざっている状態
→ とても「不純」
というイメージになります。
決定木は、この「不純さ」をできるだけ小さくするように、どの特徴量で、どこで分割するか」を選び続けるアルゴリズムです。
なぜ不純度が必要なのか
決定木は、単にデータを分ければ良いわけではありません。
重要なのは、
分けた結果として、どれだけクラスが整理されたか
を客観的に評価することです。
そこで使われるのが不純度です。
分割前と分割後で不純度を比べて、
- 不純度が大きく下がる分割 → 良い分割
- あまり下がらない分割 → 微妙な分割
と判断します。
この「不純度の下がり具合」が、決定木の分割判断の中心にあります。
代表的な不純度の指標
ジニ不純度
ジニ不純度は、現在もっとも広く使われている指標です。
多くのライブラリ(例:scikit-learn)では、これがデフォルトになっています。
直感的には、
そのノードで、適当にクラスを予測したときに間違える可能性の高さ
を表しています。
- 1つのクラスしか存在しない → 間違えようがない → 不純度は最小
- クラスが均等に混ざっている → 何を予測しても外れやすい → 不純度が大きい
という性質を持っています。
計算が軽く、実務上も扱いやすいため、最も一般的です。
エントロピー
エントロピーは情報理論に基づいた指標です。
「どれくらい情報が不確かな状態か」を測ります。
直感的には、
正しいクラスを当てるために、どれだけ情報が必要か
と考えると分かりやすいです。
- クラスが完全に決まっている → 情報はほぼ不要
- クラスがバラバラ → 追加情報がたくさん必要
という特徴があります。
理論的に美しく、教育用途や理論説明でよく使われますが、実務ではジニ不純度と結果がほぼ同じになることが多いです。
分類誤差
分類誤差は、最も単純な不純度指標です。
そのノードで一番多いクラス以外の割合
だけを見るため、直感的には分かりやすい一方で、「どのくらい混ざっているか」を細かく区別できません。
そのため、
- 分割基準としてはほとんど使われない
- モデル全体の評価や説明用途で触れられることはある
という位置づけになります。
不純度指標の違いはどれくらい重要か
実務的な結論を言うと、
ジニかエントロピーかで、最終的な精度が大きく変わることは稀
です。
それよりも重要なのは、
- 木の深さをどこまで許すか
- 1つの葉に最低何件のデータを残すか
- 過学習を防ぐ制約をどう設けるか
といった設計の方です。
不純度指標は「判断基準の物差し」であり、モデル性能を左右する主因ではありません。
多クラス分類の場合の考え方
クラスが3つ以上あっても、不純度の考え方は同じです。
- 全クラスが均等に混ざっている
→ 不純度は最大 - 特定のクラスに偏っている
→ 不純度は小さい
クラス数が増えるほど「完全に混ざった状態」はより複雑になるため、不純度の最大値も大きくなります。
回帰木における不純度
回帰問題では、クラスの代わりに 数値のばらつき が使われます。
考え方は非常にシンプルで、
同じノードに入ったデータの値が、どれだけ散らばっているか
を評価します。
値が似通っていれば「純粋」、大きくばらついていれば「不純」と見なされます。
実務で注意すべきポイント
不純度を下げ続けるだけでは、良いモデルにはなりません。
- 木を深くしすぎると、学習データに過剰適合する
- 不純度の改善は、局所的にしか見ていない
そのため実務では、
- 木の深さ制限
- 葉に含める最小データ数
- 不純度が十分に下がらない分割の禁止
といった制約を必ず組み合わせます。
まとめ
- 不純度とは データの混ざり具合 を表す指標
- 決定木は 不純度が最も下がる分割 を選び続ける
- 主流は ジニ不純度 と エントロピー
- 指標選択よりも 木の制約設計の方が重要
以上、決定木の不純度についてでした。
最後までお読みいただき、ありがとうございました。
