2020.3.23 evening
第五章决策树
- 决策树(decision tree)是一种基本分类与回归方法。本章主要讨论分类的决策树
- 决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程,它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上训练数据,根据损失函数最小化的原则建立决策树模型。
- 预测时,对新的数据,利用决策树模型进行分类。决策树的学习通常包含三个步骤:
-
- 特征选择
-
- 决策树的生成
-
- 决策树的修剪
5.1 决策树模型与学习
5.1.1 决策树模型
- 定义:
-
- 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶节点(leaf npde),内部结点表示一个特征或属性,叶节点表示一个类。
- 用决策树分类,从根节点开始,对实例的某一特征进行测试,根据测试结果,将实例分配到其子节点;这时,每一个结点对应着该特征的一个取值。如此递归地对实例进行测试,直到到达叶节点,最后将实例分到叶节点的类中。
5.1.2 决策时与if-then 规则
- 可以将决策树看成一个if-then规则的集合。将决策树转换成if-then规则的过程是这样的:由决策树的根节点到叶节点的每一条路径构建一条规则。
5.1.4 决策树学习
信息熵
- 信息熵是代表随机变量的复杂度(不确定度)
- 信息熵的公式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 - 其中P(xi)代表随机事件X为Xi的概率
信息量
- https://zhuanlan.zhihu.com/p/26486223
- 多少信息用信息量来衡量,我们接受的信息量跟具体发生的事件有关
- 信息的大小跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如湖南产生的地震了;越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生嘛,没什么信息量)。这很好理解
- 因此一个具体的事件的信息量应该是随着其发生概率而递减,且不能为负
- 如果我们有两个不相关的事件x和y,那么我们观察到两个事件同时发生时获得的信息应该等于观察到的事件各自发生时获得的信息之和,即:h(x,y)=h(x)+h(y)
- 由于x,y是两个不相关的事件,那么满足p(x,y)=p(x)*p(y)
- 我们很容易看出h(x)一定与P(x)的对数有关(因为只有对数形式的真值相乘之后,能够对应对数相加形式,可以试试),因此信息量公式如下:
-
- h(x)=-log2P(x)
-
- 两个疑问?
-
- 为什么有一个负号:其中,负号是为了确保一定时整数或者0,总不能为负数吧
-
- 为什么底数为2:这是因为,我们只需要信息满足低概率事件x对应高的信息量。那么对数的选择是任意的,我们只是遵循信息论的普遍传统,使用2作为对数的低
信息熵
- 正式引出信息熵
- 信息的度量是一个具体的事件发生所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望————考虑该随机变量的所有可能取值,即所有可能发生事件所带来的的信息量的期望,即:
- 另外信息熵还可以作为一个系统复杂程度的度量,如果系统越复杂,出现不同情况的种类越多,那么他的信息熵是比较大的。
- 如果一个系统越简单,出现情况种类很少(极端情况为1中情况,对应的概率为1,那么对应的信息熵为0),此时的信息熵较小。
条件熵
- https://zhuanlan.zhihu.com/p/26551798
- 信息熵是考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。
条件熵定义:
- 定义为X给定条件下,Y的条件概率分布的熵对X的数学期望
- 条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。随机变量X给定的条件下随机变量Y的条件熵H(Y|X)
公式:
注意:
- 这个条件熵,是指在给定某个数(某个变量为某个值)的情况下,另一个变量的熵是多少,变量的不确定性是多少?
- 因为条件熵中X也是一个变量,意思是在一个变量X的条件下(变量X的每个值都会取),另一个变量Y熵对X的期望。
- 这是最容易错的!
总结
- 其实条件熵意思是按一个新的变量的每个值对原变量进行分类
- 然后在每一个小类里面,都计算一个小熵,然后每一个小熵乘以各个类别的概率,然后求和。
- 我们用另一个变量对原变量分类后,原变量的不确定性就会减小了,因为新增了X的信息,可以感受一下。不确定程度减少了多少就是信息的增益。
信息增益
-
https://zhuanlan.zhihu.com/p/26596036
-
信息增益是特征选择的一个重要指标,它定义为一个特征能够分类系统带来多少信息,带来的信息越多,说明该特征越重要,相应的信息增益也就越大
-
信息增益=信息熵-条件熵
-
信息增益代表在一个条件下,信息复杂度(不确定性减少的程度)
-
那么我们现在也很好理解了,在决策树算法中,我们的关键就是每次选择一个特征,特征有多个,那么到底按照什么标准来选择哪一个特征。
-
- 我们可以用信息增益来度量。如果选择一个特征后,信息增益最大(信息不确定性减少的程度最大),那么我们就选取这个特征。
算法 5.2(ID3算法)
输入:训练数据集D,特征集A阈值&
输出:决策树T
- (1)、若D中所有实例属于同一类Ck,则T为单节点树,并将Ck作为该节点的类标记,返回T
- (2)、若A=null,则T为单结点树,并将D中的实例树最大的类Ck作为该节点的类的标记,返回T;
- (3)、否则,按算法5.1计算A中个特征对D的信息增益,选择增益最大的特征Ag
- (4)、如果Ag的信息增益小于阈值&,则置T为单节点树,并将D中的实例数最大的类Ck作为该结点的类标记,返回T
- (5)、否则,对Ag的每一可能值ai,依Ag=ai,将D分割成若干子集Di,将Di中的实例数最大的类作为标记,构建子结点,由结点及其子结点构成数T,返回T
- (6)、对第i个子结点,以Di为训练集,以A-{Ag}为特征集,递归地调用步(1)~步(2),得到子树Ti,返回Ti
5.3.2 C4.5的生成算法
- 输入:训练数据集D,特征集A阈值&
- 输出:决策树T
- (1)、如果D中所有实例属于同一个类Ck,则置T为单结点数,并将Ck作为该结点的类,返回T
- (2)、如果A=null,则置T为单结点数,并将D中的实例数最大的类Ck作为该结点的类,返回T;
- (3)、否则,按式(5,10)计算A中个特征对D的信息增益比,选择信息增益比最大的特征Ag
- (4)、如果Ag的信息增益比小于阈值&,则置T为单结点树,并将D中实例最大的类Ck作为该结点的类,返回T
- (5)、否则,对Ag的每一可能值ai,依Ag=ai,将D分隔为子集若干非空Di,将Di中的实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T
- (6)、对结点i,以Di为训练集,以A-{Ag}为特征集,递归地调用步(1)~步(5),得到子树Ti,返回Ti