决策树算法-信息增益率和GINI系数
ID3决策树算法在特征选择方面存在哪些问题?
我们举个例子:数据集A中有一个非常稀疏的特征ID列,我们知道ID是唯一的,不重复的,那么多样性自然会非常大。
此时,如果我们用ID对数据集进行分割,在分割结束时,每个样本会被分配到一个单独的外观节点,每个外观节点的数据都是唯一相同的,不确定度为0,熵为0。
那么这是否意味着姓名ID的特性很好呢?可以根据ID预测标签?当然不是。其实ID是没有意义的。
小宇,这里以ID为例,只是一个极端的例子。但这足以说明,对于ID这种数据种类繁多,分布非常稀疏的特征,ID3决策树算法通过信息增益来选择节点特征是不够的。
为了解决ID3决策树算法的问题,我们引入了信息增益率,并在计算信息增益时考虑了特征分布的自熵。
C4.5决策树算法用信息增益率来衡量特征节点的分类能力。所谓信息增益率,就是用信息增益除以特征本身的熵来计算的。
为什么要除以特征本身的熵呢?举个例子:只是ID特性。数据分割后的ID特征的熵值为0,原始数据集的熵值为G,特征ID的熵值为-n *(1/n)* log(1/n)=-log(1/n),其中n为数据集样本数。因此,特征ID的熵G2是非常大的值。
使用ID节点对数据集进行分段后,信息增益为G-0 = G,非常大,分类效果非常完美。但如果用信息增益率来衡量的话,就是:(G-0)/G2,其中G2一定远大于G,因为显然标签的混淆程度远低于ID栏。
所以我们得到的信息增益率是一个很小的值,这个时候可以发现ID的分类效果很差。因此,C4.5算法解决了ID3算法在度量稀疏特征方面的不足。
GINI系数类似于熵,但其计算方法不同。GINI系数的公式是:
当概率p为0或1时,此时不存在不确定性。当概率为1时,GINI系数为0,当概率为0时,GINI系数也为0。