在决策树中有想要进行分裂,有一个人重要的一点就是,我这个节点中应该放置什么特征来进行分裂呢?
对于这个例子而言,是耳朵,还是脸型,还是胡须
我们不知道,这个时候就要计算,信息增益,就是在这一个小分支中,从父节点到子节点,他们的纯度变化的怎么样,
我们通过枚举,挨个把三个特征都作为决策树的根节点测试一下
第一个图,我们呢用耳型把一个10个样本5猫5狗的样本分成了两个分支,左分支和有分支1
我们分别计算两个分支的纯度,在计算两个分支的熵,然后让他们加权平均 最终得到一个经过两个分支加权平均后的熵
然后我们计算父节点的熵
用父节点的熵减去下面分支中的熵,就得到了计算熵
现在有一个问题,我们找到最小的加权熵就好了,为什么要算 计算熵呢
是因为这样的,咋机器学习中,我们有一个停止条件是,如果熵的减少量太小,小于某个阈值,我们就要决策树停止分裂,
以第一个图片为例子
父节点猫的纯度是 5/10=0.2 10个样本5个猫
左分支 5个样本,4个猫纯度是 4/5=0.8 熵是H(0.8)=0.72
右分支 5个样本,1个猫纯度是 1/5=0.2 熵是H(0.2)=0.72
然后我们呢进行加权平均,权重是 左右分支的样本数在总样本数中的占比 也叫 W左,W右
W左=5/10=0.5
W右=5/10=0.5
加权熵是 0.5*0.72+0.5*0.72=0.72
熵变化是 父节点的熵-子节点的熵=1-0.72=0.28
然后我们就得到了熵的变化
同理我们就可以计算出其他两个加点的熵变化
这样我们找到熵变化最大的那一个就是我们要找的根节点应该写什么特征
下面的通用地 公式
所有的纯度P都是正样本的纯度,也就是猫的纯度。