4

决策树应用一文中,在构建决策分类树应用决策算法时,介绍了基尼系数(Gini Index)和基于熵(Entropy)两种算法。本文通过实例来更加深入的介绍一下这两个算法。

仍然以简单的数据为例:

id喜欢颜色是否有喉结身高性别
1绿165
2170
3172
4绿175

基尼系数

分别对 喜欢颜色 是否有喉结 求基尼系数如下:

喜欢的颜色

id喜欢颜色性别
1绿
2
3
4绿

对于姓别分类而言,数据如下:

id喜欢颜色性别
1绿
3

其中绿色的占比为0.5色的占比也为0.5,则特征喜欢的颜色相对于类别的基尼系数为:1 - (0.5^2 + 0.5^2) = 0.5。①

对于姓别分类而言,数据如下:

id喜欢颜色性别
2
4绿

其中色的占比为0.5绿色的占比也为0.5,则特征喜欢的颜色相对于类别的基尼系数为:1 - (0.5^2 + 0.5^2) = 0.5。②

最终特征喜欢的颜色对性别类别的基尼系数为 (① + ②) / 2 = (0.5 + 0.5) / 2 = 0.5。 ③

是否有喉结

id是否有喉结性别
1
2
3
4

对于姓别分类而言,数据如下:

id是否有喉结性别
1
3

其中的占比为1,则特征 是否有喉结 相对于类别的基尼系数为:1 - 1^2 = 0。④

对于姓别分类而言,数据如下:

id是否有喉结性别
2
4

其中的占比为1,则特征 是否有喉结 相对于类别的基尼系数为:1 - 1^2 = 0。⑤

最终特征是否有喉结对性别类别的基尼系数为 (④ + ⑤) / 2 = (0 + 0) / 2 = 0。⑥

决策支持

综合③⑥得知对于性别分类而言特征是否有喉结的基尼系数为0类别的基尼系数为0.5,所以基于当前数据集的决策时,第一个决策的特征应该是是否有喉结,即基尼系统越小,使用此特征进行决策效率越高。

实际的使用也是如何,通过基尼系数为0的特征是否有喉结决策时,可以直接决策中性别是男还是女,比使用特征喜欢颜色决策的效率更高。

基于熵(Entropy)

分别对 喜欢颜色 是否有喉结 求熵如下:

喜欢的颜色

id喜欢颜色性别
1绿
2
3
4绿

对于姓别分类而言,数据如下:

id喜欢颜色性别
1绿
3

其中绿色的占比为0.5色的占比也为0.5,则特征喜欢的颜色相对于类别的熵为:$$ - (0.5*log_{2}{0.5} + 0.5*log_{2}{0.5})$$ = - (-0.5 + -0.5) = 1。➊

对于姓别分类而言,数据如下:

id喜欢颜色性别
2
4绿

其中色的占比为0.5绿色的占比也为0.5,则特征喜欢的颜色相对于类别的熵为:
$$ - (0.5*log_{2}{0.5} + 0.5*log_{2}{0.5})$$

即: - (-0.5 + -0.5) = 1。➋

最终特征喜欢的颜色对性别类别的熵为 (➊ + ➋) / 2 = (1 + 1) / 2 = 1。 ➌

是否有喉结

id是否有喉结性别
1
2
3
4

对于姓别分类而言,数据如下:

id是否有喉结性别
1
3

其中的占比为1,则特征 是否有喉结 相对于类别的熵为:$$ - (1*log_{2}{1})$$
即: - (0) = 0。➍

对于姓别分类而言,数据如下:

id是否有喉结性别
2
4

其中的占比为1,则特征 是否有喉结 相对于类别的熵为:
$$ - (1*log_{2}{1})$$

即: - (0) = 0。 = 0。➎

最终特征是否有喉结对性别类别的熵为 (➍ + ➎) / 2 = (0 + 0) / 2 = 0。➏

决策支持

综合③⑥得知对于性别分类而言特征是否有喉结的熵为0类别的熵为1,所以基于当前数据集的决策时,第一个决策的特征应该是是否有喉结,即熵越小,使用此特征进行决策效率越高。

实际的使用也是如何,通过熵为0的特征是否有喉结决策时,可以直接决策中性别是男还是女,比使用特征喜欢颜色决策的效率更高。

对比

在实际的应用中,当处理类别分布不均匀的数据集时(比如在银行转账记录,只有不到1%的记录属于异常转账,其它的都属于正常转账),更推荐使用基尼系数;而当处理类别分布相对均匀的数据集时(比如不文明驾车中人群中中人的年龄分布都差不多),则倾向于用熵。


潘杰
3.2k 声望245 粉丝