决策树的特征选择之2:信息增益

mac2022-06-30  20

信息增益-局部最优

决策树最终的优化目标使得叶结点的总不纯度最低,即对应衡量不纯度的指标最低。 同时,全局最优树没有办法简单高效地获得,因此,此处仍然要以局部最优化方法来指导建模过程,并通过优化条件的设置,最终在每一步都是局部最优的条件下逐步至尽可能全局最优的结果。 而在信息熵指数的指导下,决策树生成过程的局部最优条件也非常好理解:即在选取属性测试条件(attribute test condition)对某结点(数据集)进行切分的时候,尽可能选取使得该结点对应的子节点信息熵最小的特征进行切分。换言之,就是要求父节点信息熵和子节点总信息熵之差要最大。 假定离散属性α有V个可能的取值{α12,…,αv},若使用α来对父结点样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性α上的取值为αv的样本,记为Dv。我们可以根据熵函数计算出Dv的信息熵,考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重|Dv|/|D| 。 为了确定测试条件的效果,我们需要比较父结点(划分前)的不纯程度和分支结点(划分后)的不纯程度,它们的差越大,则意味着使用属性α来进行划分所获得的 “不纯度提升” 越大, 测试条件效果越好。因此,我们可以用增益来确定划分效果的标准,但这里需要注意,此时计算子节点的总信息熵不能简单求和,而要在求和汇总之前进行行修正,此处给出更更为一般的一次切分过程中子节点的总不纯度计算公式: I(child)= ∑ v = 1 V D v D \sum_{v=1}^V\frac{D^v}D v=1VDDvEnt(Dv) 而父节点和子节点的不纯度下降数可由下述公式进行计算: Δ \Delta Δ=I(parent)-I(child) 其中I即为Ent(D)是给定结点的不纯性度量,D是父结点上的记录总数,V表示属性的个数,Dv是与第v个分支结点相关联的记录个数。决策树归纳算法通常选择最大化增益的测试条件,因为对所有的测试条件来说,Ent(D)是一个不变的值,所以最大化增益等价于最小化分支结点的不纯性度量的加权平均值。最后,当选择熵作为公式的不纯性度量量时,熵的差就是所谓的 “信息增益” ,即资讯获利(information gain)。

实例

我们以一则数据为例,构建数据集: 并计算出其香农熵为0.97(详见本博客上一篇博文《决策树的特征选择之1:香农熵、基尼指数、误分类误差》) 在手动计算一下,bad boy数据集中第0列的信息增益:

代码实现

#信息增益 #bad boy数据集中第0列的信息增益: a=(3/5)*(-(2/3)*np.log2(2/3)-(1/3)*np.log2(1/3)) calEnt(dataSet)-a

运行结果

0.4199730940219749
最新回复(0)