はじめに
決定木は、データ分析や機械学習において広く使用されるモデルの一つです。その簡潔さと解釈のしやすさから、多くの場面で利用されています。決定木の分岐を決定するために用いられる指標の一つに「ジニ不純度(Gini impurity)」があります。本記事では、ジニ不純度がどのように計算され、どのようにして決定木の分岐が行われるかを実例とともに解説します。
ジニ不純度とは
ジニ不純度は、データセットの不純度(多様性)を測る指標です。不純度が低いほど、そのデータセットは一つのクラスに偏っています。逆に、不純度が高いほど、データセットは複数のクラスに均等に分布しています。ジニ不純度は以下の式で計算されます。
ここで、\( p_i \)はクラス\( i \)の割合です。例えば、二つのクラス(AとB)がある場合、クラスAの割合を\( p_A \)、クラスBの割合を\( p_B \)とすると、ジニ不純度は以下のように計算されます。
ジニ不純度の計算例
具体例を挙げて計算してみましょう。以下のようなデータセットがあるとします。
データ | クラス |
1 | A |
2 | A |
3 | B |
4 | A |
5 | B |
このデータセットにはクラスAが3つ、クラスBが2つあります。各クラスの割合は以下のようになります。
- クラスAの割合 \( p_A = 3/5 = 0.6 \)
- クラスBの割合 \( p_B = 2/5 = 0.4 \)
これをジニ不純度の式に代入すると、
したがって、このデータセットのジニ不純度は0.48となります。
決定木の分岐
決定木は、データセットを複数のサブセットに分割することによって構築されます。分割の目的は、不純度をできるだけ低くすることです。各分岐点で、ジニ不純度が最も低くなるような分割を選択します。
具体例を用いて、分岐のプロセスを説明します。以下のようなデータセットを考えます。このデータの中で購入に関するジニ不純度を算出していきます。
年齢 | 収入 | 購入 |
25 | 500 | いいえ |
35 | 600 | はい |
45 | 700 | いいえ |
20 | 300 | いいえ |
30 | 800 | はい |
このデータセットに対して、年齢を基準にして分割することを考えます。例えば、「年齢 <= 30」と「年齢 > 30」の2つのグループに分割する場合を見てみましょう。
グループ1:年齢 <= 30
年齢 | 収入 | 購入 |
25 | 500 | いいえ |
20 | 300 | いいえ |
30 | 800 | はい |
- クラス「はい」の割合 \( p_はい = 1/3 = 0.33 \)
- クラス「いいえ」の割合 \( p_いいえ = 2/3 = 0.67 \)
ジニ不純度は、
グループ2:年齢 > 30
年齢 | 収入 | 購入 |
35 | 600 | はい |
45 | 700 | いいえ |
- クラス「はい」の割合 \( p_はい = 1/2 = 0.5 \)
- クラス「いいえ」の割合 \( p_いいえ = 1/2 = 0.5 \)
ジニ不純度は、
分割後の全体のジニ不純度
分割後の全体のジニ不純度は、各グループのジニ不純度の加重平均で計算されます。それぞれのグループのデータ数に基づいて加重平均を取ります。
- グループ1のデータ数:3
- グループ2のデータ数:2
- 全体のデータ数:5
このようにして、最適な分岐点を見つけるために各可能な分割に対するジニ不純度を計算し、全体の不純度が最も低くなる分割を選びます。
今回は年齢が30のところで分けましたが、年齢を20, 30, 40, 50などと分けてみたり、収入を300, 400, 500等と分けてみて、その中でジニ不純度が一番小さくなる部分を探します。
決定木の中では、そのような分岐条件を網羅的に探索し、最も良く分けられた部分で分岐を実行していきます。
まとめ
ジニ不純度は、決定木における分岐を決定するための重要な指標です。データセットの各分割に対してジニ不純度を計算し、不純度が最も低くなるような分割を選択することで、効果的な決定木を構築できます。具体例を通して、ジニ不純度の計算方法と決定木の分岐プロセスを理解することができました。決定木の仕組みを理解することで、より効果的なデータ分析とモデル構築が可能になります。
コメント