決定木の分類問題で使われる ジニ係数(正確にはジニ不純度) は、「あるノードに含まれているデータが、どれくらいクラスごとに混ざっているか」を表す指標です。
ノード内がほぼ1つのクラスだけで構成されている場合は値が小さくなり、複数のクラスが同じくらい含まれている場合は値が大きくなります。
つまりジニ係数は、
- 小さいほどきれいに分かれている
- 大きいほどごちゃごちゃに混ざっている
という性質を持っています。
ジニ係数の直感的な意味
ジニ係数は直感的には、
ノードの中からランダムにデータを取り出したとき、
異なるクラスのデータに当たる「起こりやすさ」
を表していると考えることができます。
- ほぼ同じクラスしかないノードでは、
違うクラスを引き当てる可能性は低くなります - 複数のクラスが均等に混ざっているノードでは、
違うクラスを引く可能性が高くなります
この「違うクラスに当たる可能性」が、ジニ係数の大きさとして数値化されています。
決定木がジニ係数をどう使うか
決定木は、ただジニ係数が小さいノードを好むわけではありません。
重要なのは 「分割した結果として、どれだけ混ざり具合が減ったか」 です。
ある特徴量と条件でノードを2つに分割したとき、
- 分割後のそれぞれのノードがどれだけきれいになったか
- そのノードに含まれるデータ数がどれくらいか
をまとめて評価し、全体として最もジニ係数が小さくなる分割 が選ばれます。
そのため、データが極端に少ない枝だけがきれいになっても、全体としての改善が小さければ良い分割とは判断されません。
なぜジニ係数がよく使われるのか
ジニ係数が広く使われている理由の一つは、計算が比較的軽いことです。
決定木は学習中に非常に多くの分割候補を評価するため、計算コストが低い指標は実務上大きなメリットになります。
そのため、CART系の決定木アルゴリズムではジニ係数が代表的な評価指標として使われることが多くなっています。
なお、同じ目的で 情報エントロピー が使われることもあり、実装によってはジニ係数とエントロピーを選択できる場合もあります。
多くのケースでは両者の性能差は小さいですが、データの性質によっては分割の仕方や最終的な精度に差が出ることもあります。
多クラス分類でも使える
ジニ係数は2クラス分類だけでなく、3クラス以上の多クラス分類でも同じ考え方で使えます。
クラス数が増え、しかもそれらが均等に混ざるほど、ジニ係数はより大きな値になります。
逆に、多クラスであっても1つのクラスに大きく偏っていれば、ジニ係数は小さくなります。
実務で注意すべきポイント
データが少ない場合の過学習
データ数が少ないと、たまたまきれいに分かれた分割が選ばれやすくなります。
そのため、木の深さや葉に含める最小データ数などの制約が重要になります。
クラス不均衡との関係
クラスの比率が大きく偏っているデータでは、多数派クラスを当てるだけで「混ざり具合が減った」と判断されやすくなります。
この場合は、クラスの重み付けやサンプリング手法を併用することで調整します。
特徴量重要度との関係
ランダムフォレストなどで使われる「ジニ係数の減少量に基づく特徴量重要度」は、
- 分割候補が多い特徴量(連続値やカテゴリ数が多いもの)を
過大評価しやすい
という性質があります。
そのため、実務では他の重要度指標と併用することがよくあります。
まとめ
- ジニ係数は ノード内のクラスの混ざり具合 を表す指標
- 小さいほどクラスが偏っており、分類しやすい状態
- 決定木は 分割後のジニ係数が最も小さくなる分割 を選ぶ
- 計算が軽く、実務で非常に扱いやすい
数式を使わなくても、「どれだけ混ざっているかを減らすための指標」と理解しておけば、決定木の挙動はかなり読みやすくなります。
以上、決定木のジニ係数についてでした。
最後までお読みいただき、ありがとうございました。
