4.1 决策树基本流程
4.1.1.决策树模型
- 决策树基于“树”结构进行决策
- )每个“内部结点”对应于某个属性上的“测试”
- )每个分支对应于该测试的一种可能结果(即该属性的某个取值)
- )每个“叶结点”对应一个“预测结果”
- 学习过程:通过对训练样本的分析来确定“划分属性”(即內部结点所对应的属性)
- 预测过程:将测试示例从根结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点
- 决策树模型如图1所示
图1 西瓜问题的一颗决策树
- 基本流程
- )策略:分而治之
- )自根至叶的递归过程
- )在每个中间结点寻找一个“划分”属性
图2 决策树学习基本算法
- 三种停止条件
- )当前结点包含的样本全属于同一类别,无需划分
- )当前属性集为空,或是所有样本在所有属性上取值相同,无法划分(样本集合中谁多就当成是谁)
- )当前结点包含的样本集合为空,不能划分(父结点的样本集合中谁多就当成是谁)
4.2 划分选择
4.2.1.信息增益划分
- 信息熵:度量样本集合“纯度”最常用的一种指标假定当前样本集合D中第k类样本所占的比例为,则D的信息熵定义为
- 计算信息熵是约定,若p=0,则
- Ent(D)的值越小,则D的纯度越高,Ent(D)的最小值为0,最大值为
- 信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化
- 依下图,可计算出用属性a对样本集D进行划分所获得的“信息增益”
- 对各个属性进行计算,得到其信息增益,选取信息增益最大的属性作为划分属性
- 一般而言,信息增益越大,意味着使用属性a来划分所获得的“纯度提升”越大,可用信息增益来进行决策树的划分属性选择
4.2.2.增益率
- 信息增益:对可取值数目较多的属性有所偏好,有明显弱点,如考虑将“编号”作为一个属性
- 增益率公式如下
其中
- 属性a的可能取值数目越多(即V越大),IV(a)的值通常就越大
- 增益率准则对可取值数目较少的属性有所偏好,所有C4.5算法未直接选择增益率最大的候选划分属性,而是使用启发式:先从候选划分属性中找出信息增益高于平均水平的,再从中选取增益率最高的
4.2.3 基尼指数(CART算法中使用)
数据集D的纯度可用基尼值来度量,如下
- 公式中反映了从D中随机抽取两个样例,其类别标记不一致的概率,Gini(D)越小,数据集D的纯度越高
- 属性a的基尼指数公式如下
- 在候选属性集合中,选取那个使划分后基尼指数最小的属性作为最优划分属性
4.3 剪枝处理
4.3.1.划分选择 VS 剪枝
- 划分选择的各种准则虽然对决策树的尺寸有较大影响,但在泛化性能的影响很有限,剪枝方法和程度对决策树泛化性能的影响更为显著
- 剪枝是决策树对付过拟合的主要手段
- 当单使用一个决策树的时候一定要使用剪枝,决策树剪枝的基本策略有两种,分别为“预剪枝”和“后剪枝”,剪枝过程中需评估剪枝前后决策树的优劣(第2章)
- )预剪枝:提前终止某些分支的生长
- )后剪枝:生成一棵完全树,再“回头”剪枝
- 剪枝目的:未来尽可能正确分类训练样本,有可能造成分支过多,导致过拟合,可通过主动去掉一些分支来降低过拟合的风险
4.4 连续与缺失值
4.4.1.缺失值
- 现实应用中,常会遇到属性值“缺失”现象,若仅使用无缺失的样例 —> 对数据的极大浪费
- 使用带缺失值的样例,需解决一下问题
- )如何进行划分属性选择?
- )给定划分属性,若样本在该属性上的值缺失,如何进行划分?
- 问题解决基本思路:样本赋权,权重划分