基尼系数
上一篇博客主要使用信息熵这样的方式对决策树每一个节点上相应的数据进行一个划分,然后一点一点构建出一颗决策树来。其实我们还可以使用另外一个指标对我们的决策树每个节点的数据进行划分,这个指标就是基尼系数。
基尼系数的计算比信息熵简单很多,公式如下:
我们还是使用几个小例子观察求出来的结果是怎样的。
如果数据分成三类,每类所占比例均是 1/3,那么基尼系数为:
同样数据分成三类,所占比例为 1/10,2/10,7/10,那么基尼系数为:
对比这两个小例子,第二组数据相比第一组数据更加的确定,不确定的程度更低,那么相应的它的基尼系数也比第一组的低。换句话说,基尼系数的性质和之前说的信息熵的性质是一样的。基尼系数越高,意味着数据的随机性越强,那么不确定度更高。
那么再看一下在极端的情况下,比如三类所占比例为 1,0,0,那么基尼系数为:
此时基尼系数达到了最低,意味着数据百分百在一个类别中,没有不确定性。
那么我们还是二分类为例,假设一类所占比例为 x x x,那么另一类所占比例为 1 − x 1-x 1−x,那么基尼系数可以表示为:
我们发现此时的
G
G
G 是一条抛物线,当
x
=
1
/
2
x = 1/2
x=1/2 时,基尼系数达到了最大值,此时的不确定度最高。
下面我们就使用基尼系数进行划分。
总的来说, 信息熵的计算是比基尼系数稍慢一些,因为信息熵里面需要计算 l o g log log 函数,它是一个非线性函数,所以在 sklearn 中默认使用基尼系数。但是在大多数时候二者没有特别的优劣效果。
具体代码见 83 基尼系数.ipynb