第4章 决策树(decision tree)亦称“判定树”
1.基本流程
1.1 决策树的组成
- 一个根节点:包含样本全集
- 若干个内部节点:对应于一个属性测试
- 若干个叶节点:对应于决策结果
1.2 决策树的目的
-
为了产生一棵泛化能力强,即处理未见视例能力强的决策树
1.3 遵循的策略
-
分而治之(divide-and-conquer)
1.4 决策树学习基本算法
2.划分选择
2.1 结点的纯度(purity)
-
结点所包含的样本尽可能属于同一类别
2.2 划分指标
2.2.1 信息增益(information gain)
- 信息熵(information entropy)
Ent(D)的值越小,则D的纯度越高
- 信息增益
信息增益越大,则使用属性a来进行划分,因为所获得的“纯度提升”越大
- 著名的决策树学习算法:ID3
- 偏好(也是不利影响):对可取值数目较多的属性有偏好
2.2.2 增益率
- 定义
其中,IV(a)为属性a的“固有值”(intrinsic value)。属性a的可能取值数目越多(即V越大),则IV(a)的值通常会越大。
- 著名决策树学习算法:C4.5
- 偏好:对可取值数目较少的属性有所偏好
2.2.3 基尼指数(Gini index)
- 数据集D的纯度可用基尼值来度量
- 基尼指数
- 著名决策树学习算法 Classification and Regression Tree,简称CART
- 偏好:在候选属性集合A中,徐泽那个使得划分后基尼指数最小的属性作为最优划分属性
3.剪枝(pruning)处理 (剪枝是决策树学习算法对付“过拟合”的主要手段)
- 剪枝基本策略
3.1 预剪枝(prepruning)
预剪枝是指在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点
3.1.1 决策树桩(decision stump)
- 一棵仅有一层划分的决策树
3.1.2 优点
- 降低过拟合的风险
- 显著减少决策树的训练时间开销和测试时间开销
3.2 后剪枝
后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
3.2.1 后剪枝决策树通常比预剪枝决策树保留更多的分支
3.2.2 优点
- 后剪枝决策树的欠拟合风险很小
- 泛化性能往往优于预剪枝决策树
3.2.3 缺点
- 训练时间开销比未剪枝决策树和预剪枝决策树都要大得多
4.连续与缺失值
4.1 连续属性离散化技术
- 二分法(bi-partition)
C4.5算法采用
选择使Gain(D,a,t)最大化的划分点
注意:与离散属性不用,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性
4.2 缺失值面临的两个问题
(1)如何在属性值缺失的情况下进行划分属性选择?
(2)给定划分属性,若样本在该属性上的值确实,如何对样本进行划分?
4.3 缺失值解决方案
对问题(1),显然我们仅可根据D(上有波浪符号)来判断属性a的优劣
对问题(2),若样本x在划分属性a上的取值已知,则将x划入与其取值对应的子结点,且样本权值在于结点中保持为wx。否则,让同一个样本以不同的概率划入到不同的子结点中去。
5.多变量决策树(multivariate decision tree)亦称“斜决策树”(oblique decision tree)
5.1 轴平行(axis-parallel)
- 决策树所形成的分类边界有一个明显的特点:轴平行(axis-parallel),由若干个与坐标轴平行的分段组成
- 缺点:决策树会相当复杂,由于要进行大量的属性测试,预测时间开销会很大
- 方案:决策树对复杂分类边界的分段近似
- 在多变量决策树的学习过程中,不是为每个非叶结点寻找一个最优划分属性,而是试图建立一个合适的线性分类器
- 多变量决策树对应的分类边界如下:
6.阅读材料
6.1 决策树学习算法最著名的代表
- ID3
- C4.5
- CART
6.2 对决策树的尺寸有较大影响,但对泛化性能的影响有限
- 信息增益
- 增益率
- 基尼指数
6.3 对决策树泛化性能的影响相当显著
- 剪枝方法
- 剪枝程度
6.4 多变量决策树算法
- OC1
- 线性分类器学习的最小二乘法
- 叶结点上嵌入神经网络,例如“感知机树”
- 叶结点上嵌入多层神经网络
6.5 增量学习(incremental learning)
通过调整分支路径上的划分属性次序来对树进行部分重构
- ID4
- ID5R
- ITI