决策树
1. 基本流程
以二分类任务为例,从给定训练集中学得一个模型用以对新示例进行分类,这个分类的任务可以看作是对“当前样本属于正类吗?”这个问题的“决策”和“判断”过程。显然,这个决策过程是基于树的结构。
一般地,一个决策树包含一个根节点,若干内部节点和叶子结点;其中,叶子结点为决策结果(即为“是”和“否”);其他各结点均为对属性的判断,根节点判断时包含所有的样本,每经过一个内部节点,均会被筛选出一部分数据。基本决策树算法如下图
图1 决策树学习基本算法
显然,决策树的遍历是一个递归过程,一共有三种情况可能导致递归返回:(1).当前结点所包含数据均为同一类别,无需再分:(2).当前属性集为空,或所有样本在所有属性上均取值相同,无法划分;(3).当前结点包含数据集合为空,无法划分。
2. 划分选择
由图1可看出,算法的重点为第八行,即如何选择最优划分属性。一般而言,随着数据不断划分,我们更希望每一个类别被划分的更加精细,即结点“纯度”越来越高。
2.1 信息增益
“信息熵”被用于度量样本集合纯度,其定义为
式(1)
其中,假定当前样本集合D中第k个样本所占比例为();Ent(D)值越小,D的纯度越高。
2.2. 增益率
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法 [Quinlan 1993J 不直接使用信息增益,而是使用"增益率"来选择最优划分属性.采用与(2) 相同的符号表示,增益率定义为
Gain_ratio
式(3)
其中,
图4
2.3 基尼指数
CART 决策树 [Breiman et al., 1984] 使用"基尼指数" (Gini index) 来选择划分属性.采用与式(1) 相同的符号,数据集D的纯度可用基尼值来度量:
式(5)
3 剪枝处理
剪枝(pruning) 是决策树学习算法对付"过拟合"的主要手段.在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得"太好"了,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合.因此,可通过主动去掉一些分支来降低过拟合的风险.