文章目录
前言
决策树(decision tree):是一类常见的机器学习方法,是基于树结构来进行决策的。决策过程的最终结论对应了我们所希望的判定结果,决策过程中提出的每个判定问题都是对某个属性的“测试”,再由每个测试结果进一步导出最终结论。以判断一个瓜是不是好瓜为例,决策过程:
决策树
1.1基本流程
1.1.1决策树的结构:
一般一棵决策树包含一个根结点、若干个内部结点和若干个叶结点,其中
- 叶结点:对应决策结果,其他每个结点对应一个属性测试
- 每个结点包含的样本集合根据属性测试的结果被划分到子结点中
- 根节点包含样本全集
- 从根节点到每一个叶节点的路径对应了一个判定测试序列
1.1.2 决策树的基本学习算法:
决策树学习的目的是为了产生一棵泛化能力强,即处理未知样本能力强的决策树,其基本流程遵循简单而直观的“分而治之”策略。
决策树的生成是一个递归的过程,在决策树的基本算法中,有三种情形会导致递归返回:
(1)当前结点包含的样本全属于同一个类别,无需划分
(2)当前属性集为空,或是所有样本在所有属性上的取值相同,无法划分
(3)当前结点包含的样本集合为空,不能划分
在(2)中的情形下,我们把当前结点标记为当前叶节点,并将其类别设定为该节点所含样本最多的类别,在(3)中的情形中下,同样把当前结点标记为叶节点,但将其类别设定为其父结点所含样本最多的样本
注意:情形(2)是在利用当前结点的后验分布,而情形(3)则是把父结点的样本分布作为当前节点的先验分布。
1.2 划分选择:
如何选择最优划分属性是决策树学习的关键 。一般而言,随着划分的不断进行,我们希望分支结点所包含的样本尽可能属于同一类别,即结点的“纯度(purity)”越来越高。
1.2.1信息增益
信息熵(information entropy):度量样本结合纯度的一种常见指标
- 定义:
其中,pk是当前样本集合D第k类样本所占的比例,y是属性(label)的集合 - Ent(D)越小,D的纯度越高
信息增益(information gain)用属性a 对样本集 D 进行划分 - 定义:
- 一般信息增益越大,表示使用属性a划分所获得的"纯度提升“越大,结果越好。因此,我们可用信息增益来作为决策树划分属性的选择。
1.2.2 增益率
著名的决策树算法C4.5决策树算法 [Quinlan, 1993] 不直接使用信息增益,而是使用“增益率”(gain ra tio )来选择最优划分属性.采用与式(4.2)相同的符号表示
- 定义:
- IV(a)称为属性a的“固有值”,
- 通常V越大,IV(a)的值越大
- 需注意的是,增益率准则对可取值数目较少的属性有所偏好,因 此 C4.5算法 并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式[Quinlan, 1993]:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
1.2.3 基尼指数
CART 决 策 树 [Breiman et a l, 1984](CART 是Classification and Regression Tree 的简称,这是一种著名的决策树学习算法,分类和回归任务都可用.)使 用 基 尼 指 数 ( Gini index) 来选择划分属性.
- 定义:
- 反映了Gini(D) 反映了从数据集中随机抽取两个样本,其类标记不同的概率。因此, Gini(D) 越小,则数据集的纯度越高。
- 属性a的基尼指数定义:
1.3 剪枝处理
- 剪枝(pruning):决策树学习算法对付“过拟合”的主要手段.
- 基本策略: 预剪枝(prepruning)和后剪枝 (post-pruning)
1.3.1预剪枝
- 定义:在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
- 预剪枝优缺点
- 优点:
预剪枝使得决策树的很多分支都没有“展 开”,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销. - 缺点:
有些分支的当前划分虽不能提升泛化性能,甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了 欠拟合的风险
- 优点:
1.3.2后剪枝
- 定义:先从训练集生成一棵完整的决策树, 然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
后剪枝的优缺点- 优点:
一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。 - 缺点:
后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都大得多。
- 优点:
1.4 连续与缺失值
1.4.1 连续值处理
- 上面是基于离散属性的讨论,但现实中会遇到连续属性。
- 由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分,可采用连续属性离散化技术。
- 最简单的策略是采用二分法对连续属性进行处理。
1.4.2 缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失.尤其是在属性数目较多的情况下,往往会有大量样本出现缺失值. 如果简单地放弃不完整样本,仅使用无缺失值的样本来进行学习,会造成数据信息极大的浪费.因此,对有缺失属性值的训练样例我们也要利用起来.
- 问题一 如何在属性值缺失的情况下进行划分属性的选择?
- 问题二 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
1.5 多变量决策树
若我们把每个属性视为坐标空间中的一个坐标轴,则 d 个属性描述的样本就对应了 d 维空间中的一个数据点,对样本分类则意味着在这个坐标空间中寻找不同类样本之间的分类边界.决策树所形成的分类边界有一个明显的特点: 轴平行(axis-parallel),即它的分类边界由若干个与坐标轴平行的分段组成。
总结
以上就是学习西瓜书第四章后的一些总结,本文仅仅简单介绍了决策树的一些基础知识,后面学习后会进一步补充的