目录
第四章 决策树
4.1 基本流程
一般的。一棵决策树包含一个根结点、若干个内部结点和若干个叶结点,叶结点对应于决策结果,其它每一个结点则对应于一个属性测试。
决策树学习的目的是为了产生一颗泛化能力强、即处理未见实例能力强的决策树。
决策树的生成:是一个递归过程。有三种情况导致递归返回:
①当前结点包含的样本全属于同一类别,即无需划分。
②当前属性集为空,或所有样本在所有属性上取值相同,无法划分。
③当前结点包含的样本集为空,不能划分。
在②情况下,把当前结点标记为叶节点,并将其类别设定为该结点所含样本最多的类别;
在③情况下,把当前结点标记为叶节点,但将其类别设定为其父结点所含样本最多的类别。
区别:②是利用当前结点的后验分布,③是把父结点的样本分布作为当前结点的先验分布。
4.2 划分选择
决策树的关键:如何选择最优化分属性,即结点“纯度”越来越高。
4.2.1 信息增益
“信息熵”:度量样本集合纯度的最常用指标。定义为:
D:样本集合 k:第k类样本 :第k类样本在D中的比例
其中Ent(D)的值越小(最小值为0,最大值为),D的纯度越高。若
=0则
.
a:某一离散属性 v:第v个分支结点 :D中所有在属性a上取值为
的样本
一般而言,信息增益越大,则意味着使用属性a来划分所获得的“纯度提升”越大。著名的ID3决策树学习算法就是以信息增益为准则来选择划分属性。
个人想法:某个属性的信息增益大也就是某个属性在决定过程中的权重大。 而权重最大的放在前面做划分属性。
4.2.2 增益率(在信息增益基础上的进一步优化)
实际上。信息增益准则可对取值数目较多的属性有所偏好,为了减少这种偏好带来的不利影响。著名的C4.5决策树算法不直接使用信息增益,而是使用增益率。增益率的定义为:
其中IV(a)称为属性a的“固有值”。属性a的可能取值数目(V)越大,则IV(a)的值通常会越大。
需要注意的是,增益率准则对可取值数目较少的属性有所偏好,因此C4.5并不是直接选择最大增益率的候选作为划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
个人想法:增益率抑制了数目带来的影响,即偏好。但是也拉高了小数目取值样本的比重,所以启发性避免了小数目取值的可能。
4.3 剪枝处理
剪枝是决策树学习算法对“过拟合”的主要手段。决策树剪枝的基本策略主要有“预剪枝”和“后剪枝”。
预剪枝:在生成决策树过程中,对每个结点在划分前先进行估计,若当前结点划分不能带来决策树泛化性能的提升,则停止划分并标记当前结点为叶结点。
后剪枝:先生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若该结点对应的子树替换为叶结点能提升泛化性能,则将该子树替换为叶结点。
利用2.2节介绍的性能评估方法来判断决策树泛化性能提升与否
4.4 连续与缺失值
4.4.1 连续值处理
上述利用离散属性来生成决策树。下面我们讨论如何在决策树中使用连续属性。
利用连续属性离散化技术,最简单的策略是采用二分法对连续属性进行处理,这正是C4.5决策树算法中采用的机制。
基于划分点t可将D分为子集和
。其中
包含那些在属性a上取值不大于t的样本,而
则包含哪些在属性a上取值大于t的样本。因此,对连续属性a,我们可考察包含n-1个元素的候选划分点集合
即把区间的中位点作为候选划分点,然后我们就可以像离散属性值一样来考察这些划分点,选取最优的划分点进行样本集合的划分。
其中Gain(D,a,t)是样本集D基于划分点t二分后的信息增益,于是我们就可选择使Gain(D,a,t)最大化的划分点。
需要注意的是,与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。
4.4.2 缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失。尤其是在属性数目较多的情况下,往往会有大量样本出现缺失值。如果直接放弃不完整样本,是一种浪费。所以要利用有缺失属性值的训练样例来进行学习。
解决两个问题:
①如何在属性值缺失的情况下如何进行属性划分?
②给定划分属性,若样本在该属性上的确实,如何对样本进行划分?
给定训练集D和属性a,令表示D中在属性a上没有缺失值的样本子集。
对于问题①,显然我们仅可根据来判断属性a的优势。
对于问题②,若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持;若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值
对应的子结点中调整为
,其中
表示无缺失值样本中在属性a上取值
的样本所占的比例,就是让同一个样本以不同的概率划入到不同的子结点中去。
4.5 多变量决策树
在多变量决策树的学习过程中,不是每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。