决策树(部分)
目录
信息熵
总结:
特征选择
信息增益:ID3算法
增益率:C4.5
基尼指数
剪枝处理
预剪枝
后剪枝
信息熵
- 青绿样本 D1:1,4,6,10,13,17。共6个,3是3否,信息熵
- 乌黑样本 D2:2,3,7,8,9,15。共6个,4是2否,信息熵
- 浅白样本 D3:5,11,12,14,16。共5个,1是4,信息熵
色泽这个属性总体的信息熵为三种类型样本的加权平均,因为样本量越多的类型越重要,信息熵越大,即:
总结:
信息熵与概率是一个事物的一体两面,概率指“事件多大可能发生”,表示事件发生的“确定性”,而信息熵指“事件有几种可能性”表示时间发生的“不确定性”。反映的是事情复杂、混乱的程度。统计意义上来说这是一种加权平均,表示整体的选择个数。信息熵还可以用来进行信息编码,可用于计算信息编码的平均长度
由于日常所得的数据中既有有效数据又含噪音,选择特征的方法包括信息增益(Information Gain)、基尼指数(Gini Index)和增益率(Gain Ratio)等。
特征选择
信息增益:ID3算法
在了解信息熵的意思后,我们就可以通过得知信息前后不确定性的变化(信息熵的差额)对信息进行量化,从而看出信息对问题判断是否有效,多有效
由此将这个信息熵的差额称作信息增益,假设划分前的信息熵为,,则信息增益定义为:
前者是划分前的信息熵,后者是划分后的信息熵,信息增益越大,使用该属性划分的效果越好
综上,将纹理作为决策树的第一个分叉。在分叉后,将子集作为样本,每个类别作为根节点,计算其他属性的信息增益,继续分叉
增益率:C4.5
信息增益一般偏向于选择属性取值较多的特征,为减少这种偏好可能带来的不利影响使用增益率,其公式:
a 是指某属性有几种类别的特征,取值数量越多,V 越大,IV(a) 越大,选择模型时,先从候选划分属性中找出信息增益高于平均水平的, 再从中选取增益率最高的
补充:关于属性分裂信息度量:
在属性分列后,需要考虑接下来在哪个叶子节点进行分列
用分裂信息度量来考虑某种属性进行分裂时分支的数量信息和尺寸信息,这些信息称为属性的内在信息(instrisic information),反应节点的不确定性。举个例子,假设上面色泽分裂出的三个颜色,浅白的全是坏瓜,说明这个类别类别是”纯“的,我们用其他“不纯”的节点进行其他属性的分裂
C4.5的算法流程:
-
while(当前节点"不纯"):
-
计算当前节点的类别熵(以类别取值计算,每个类别当做根节点计算)
-
计算当前阶段的属性熵(按照每个属性取值的类别计算,某类别中其他属性的熵)
-
计算信息增益
-
计算各个属性的分裂信息度量
-
计算各个属性的信息增益率
-
end while
-
当前阶段设置为叶⼦节点
基尼指数
该方法反映了 D 中抽取两个样例,其类别不一致的概率
基尼值
基尼系数
只需要知道,在候选属性集合中,选取那个使划分后基尼指数最小的属性即可,基尼指数越小,纯度越高(纯度指分完之后正反例是否掺杂)
剪枝处理
核心目的:解决过拟合问题
预剪枝
自上而下,若分叉不能提高精度,则不分
对于数据的训练集,1~8是好瓜,9~17是坏瓜,按信息增益率的方法生成决策树:
对于脐部和色泽的分支,对应属性的西瓜编号如下:
- 脐部分叉之前3好瓜4坏瓜,测试集精度3/7,分叉后,测试集{9,13}样本预测错误,其余正确,精度5/7提高了,所以这个叉应该分。
每个属性取值的标记依靠训练集中好坏瓜的比例来定,好瓜多就标记为好瓜,如果某一取值好坏瓜的比例为1:1,默认为是好瓜
- 色泽分叉前,4、5号预测准确,精度2/3,分叉后只有4号样本预测正确,精度1/3,下降。因此色泽这个枝不应该分,剪去
- 同理,对于根蒂这个属性,分叉前后都是一对一错(8是好瓜,9非好瓜),精度并未提升,因此也不分叉
最终预剪枝得到的决策树如下:
后剪枝
与预剪枝类似,只是后剪枝是自下而上的,能不剪就不剪
考虑最底下的纹理是否分叉,在未剪枝的情况下,3个错4个对,正确率3/7,减去后,测试集中的8号被预测正确了,此时正确率提高为4/7,因此应该这个枝剪去
对于其他节点一样进行判断,最终得到这样的结果 :
连续值与缺失值的处理待补充,缺失值不同于常规方法的是在决策树中,用缺失前后数据量的比值对信息增益进行缩小,即可计算