您的位置:首页 > 其它

周志华《机器学习》笔记:第4章 决策树

2017-08-21 14:36 239 查看
1、基本流程

  决策树是基于树结构来进行决策的。一般地,一颗决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集。从根结点到每个叶结点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”策略。

  决策树的生成是个递归过程。在决策树基本算法中,有三种情形会导致递归返回:(1)当前结点包含的样本全属于同一类别,无需划分;(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;(3)当前结点包含的样本集合为空,不能划分。

  在(2)情形下,我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别;在(3)情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。(2)是在利用当前结点的后验分布,(3)是把父结点的样本分布作为当前结点的先验分布。

2、划分选择

  如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。

2.1 信息增益

  “信息熵”是度量样本集合纯度最常用的一种指标。信息增益越大,则意味着使用属性a 来进行划分所获得的“纯度提升”越大。ID3决策树学习算法是以信息增益为准则来进行决策树的划分属性选择。计算当前属性集合中每个属性的信息增益,选择其中信息增益最大的属性为划分属性。

2.2 增益率

  信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,C4.5决策树算法使用“增益率”来选择最优划分属性。增益率准则对可取值数目较少的属性有所偏好,C4.5算法使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

2.3基尼指数

  CART决策树使用“基尼指数”来选择划分属性,数据集D的纯度可用基尼值来度量,反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此基尼值越小,数据集D的纯度越高。于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

3、剪枝处理

  剪枝是决策树学习算法对付“过拟合”的主要手段。决策树剪枝的基本策略有“预剪枝”和“后剪枝”。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提高,则将该子树替换为叶结点。

3.1 预剪枝

  基于信息增益准则,选取属性对训练集进行划分,预剪枝对划分前后的泛化性能进行估计,验证集精度提升则进行划分,下降或不能提升则预剪枝策略禁止结点被划分。一颗仅有一层划分的决策树,亦称为“决策树桩”。预剪枝使得决策树的很多分支都没有展开,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。

3.2 后剪枝

  后剪枝先从训练集生成一颗完整决策树。从最后一个非叶结点开始,若将其领衔的分支剪除,则相当于把其替换为野结点,替换后比较验证集精度,验证集精度提高则后剪枝策略决定剪枝。一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶子结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大很多。

4、连续与缺失值

4.1 连续值处理

  如何在决策树学习中使用连续属性。最简单的策略是采用二分法对连续属性进行处理,这是C4.5决策树算法中采用的机制。可以像离散属性值一样来考察这些划分点,选择最优的划分点进行样本集合的划分。选择使信息增益最大化的划分点。与离散属性不同,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。

4.2 缺失值处理

  如何在属性值缺失的情况下进行划分属性选择;给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?(没看懂)

5、多变量决策树

  决策树所形成的分类边界有一个明显的特点:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。每一段划分都直接对应了某个属性取值。但在学习任务的真实分类边界比较复杂时,必须使用很多段划分才能获得较好的近似,此时的决策树会相当复杂,由于要进行大量的属性测试,预测时间开销会很大。

  若能使用斜的划分边界,则决策树模型将大为简化。“多变量决策树”就是能实现这样的“斜划分”甚至更复杂划分的决策树。以实现斜划分的多变量决策树为例,在此类决策树中,非叶节点不再是仅对某个属性,而是对属性的线性组合进行测试;换言之,每个非叶结点是一个形如∑di=1ωiai=t 的线性分类器,其中ωi 是属性ai 的权重,ωi 和t 可在该结点所含的样本集和属性集上学得。于是,与传统的“单变量决策树”不同,在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  机器学习