Beginning AI

機械学習と深層学習 

決定木におけるジニ不純度とエントロピー

決定木において、ジニ不純度とエントロピーは欠かすことができない存在である。 Sklearnのデフォルトでは、ジニ不純度(GINI impurity)が使用されるし、ハイパーパラメータを使用すれば不純度の指標として、エントロピーも使用することができる。

ジニ係数

$$ G_i = 1- \sum_{k=1}^{n} {P(k|i)}^2 $$

i: i番目のノード
k: あるクラスk

例えば、あるi番目のノードに、クラス赤が2個、クラス青が3個含まれるとする。 その場合、条件付き確率は下記となる。

$$ P(クラス赤|ノードi) = \frac{ 2 }{ 5 } $$

$$ P(クラス青|ノードi) = \frac{ 3 }{ 5 } $$

そのため、ジニ係数は0.48となる。 また、クラス赤が1個、クラス青が4個であれば、ジニ係数は0.32である。

つまり、ジニ係数が低いということは決定木が良いノードを作成できたということになる。(クラスをきちんと分けることができなければ、良いノードではない。)

ちなみに最大のジニ係数は0.5(半分半分ずつ存在する状態)である。

エントロピー

他にも不純度の指標として、エントロピーがある。 元々エントロピーは、熱力学で分子の乱雑さの指標として用いていた。 エントロピーも同様に0は、ひとつのクラスのみが存在する状態を表す。従ってエントロピーが低いほどよいノードを作成できていることになる。

$$ H_i = - \sum_{k=1, P(k|i) \neq 0}^n {P(k|i)log(P(k|i))} $$

使い分け

どちらも同じように不純度を表すことができる。 使い分けについてはうまくまとまっている下記ブログを参照してほしい。

sebastianraschka.com