决策树是一种基本的分类与回归方法
决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程,可以被认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。
主要优点是:模型具有可读性,分类速度快。
5.1 决策树模型与学习
5.1.1 决策树模型
分类决策树模型是一种描述对实例进行分类的树形结构,决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部节点(internal node) 和叶节点(leaf node)。内部结点表示一个特征或属性,叶节点表示一个类。
5.1.2 决策树与if-then规则
可以将决策树看成一个if-then规则的集合。
决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥且完备。
5.1.3 决策树与条件概率分布
决策树还表示给定特征条件下类的条件概率分布。这一条件概率分布定义在特征空间的一个划分(partition)上。
5.1.4 决策树学习
决策树学习本质上是从训练数据集中归纳出一组分类规则,与训练数据集不相矛盾的决策树可能有多个,也可能一个也没有。我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。
决策树学习用损失函数表示这一目标,通常为正则化的极大似然函数。
当损失函数确定以后,学习问题变为在损失函数意义下选择最优决策树的问题。因为从所有可能的决策树中选取最优决策树是NP完全问题,所以现实中的决策树学习通常采用启发式方法。这样得到的决策树是次最优(sub-optimal)的。
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割,使得对各个子数据集有一个最好的分类的过程。
为了防止过拟合,需要对已生成的树自下而上进行剪枝,将树变得更简单,从而使它具有更好的泛化能力。(即去掉过于细分的叶节点,使其回退到父节点)。
如果特征数量多,也可以在开始学习时对特征进行选择。
可以看出,决策树学习算法包含特征选择、决策树生成与决策树剪枝的过程。决策树的剪枝对应于模型的全局选择,而决策树的生成对应于模型的局部选择。
决策树学习的常用算法有ID3、C4.5和CART。
5.2 特征选择
5.2.1 特征选择问题
特征选择在于选取对训练数据具有分类能力的特征。
通常特征选择的准则是信息增益或信息增益比。
5.2.2 信息增益
首先给出熵与条件熵的定义。
在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量。设X是一个取有限个值的离散随机变量,其概率分布为
则随机变量X的熵定义为
上式中若 ,则定义 ,通常取2为底或以 为底,这时上的单位分别称作比特(bit)或纳特(nat)。
熵只依赖于 的分布,而与 的取值无关,所以也可以将 的熵记作 ,即
熵越大,随机变量的不确定性就越大。从定义可以验证:
以布尔随机变量为例:
条件熵:
当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵与条件熵分别被称为经验熵(empirical entropy)和经验条件熵(empirical conditional entropy)。
信息增益表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。
信息增益(information gain)的定义:
决策树中的信息增益等价于训练数据集中类与特征的互信息。
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,并比较它们的大小,选择信息增益最大的特征。
信息增益的算法:
5.2.3 信息增益比
信息增益值的大小是相对于训练数据集而言的,并没有绝对意义。
当训练数据集的经验熵大的时候,信息增益值会偏大,反之,信息增益值会偏小。
使用信息增益比可以对这一问题进行校正。
信息增益比的定义:
5.3 决策树的生成
5.3.1 ID3算法
ID3算法的核心是在决策树的各个节点上应用信息增益准则选择特征,递归地构建决策树。
具体方法:从根节点开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点,再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止。
ID3相当于用极大似然法进行概率模型的选择。
ID3算法:
ID3算法只有树的生成,所以该算法生成的树容易产生过拟合。
5.3.2 C4.5的生成算法
C4.5 算法与ID3算法相似,C4.5算法对ID3算法进行了改进,在生成过程中,用信息增益比来选择特征。
5.4 决策树的剪枝
在决策树学习中将已生成的树进行简化的过程称为剪枝(pruning). 具体地,剪枝从已生成的树熵裁掉一些子树或叶节点,并将其根节点或父结点作为新的叶节点,从而简化分类树模型。
决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。
其中经验熵为
在损失函数中,将式(5.11)有段的第一项记作
这时有
在式(5.14)中, 表示模型对训练数据的预测误差,即模型与训练数据的拟合程度。 表示模型复杂度,参数 控制两者之间的影响。较大的促使选择较为简单的模型,反之选择较为复杂的模型。 意味着只考虑模型与训练数据的拟合程度,不考虑模型的复杂度。
剪枝就是当确定时,选择损失函数最小的模型,即损失函数最小的子树。
可以看出,决策树生成只考虑了通过提高信息增益对训练数据进行更好的你和,而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。决策树生成学习局部的模型,而决策树剪枝学习整体的模型。
决策树的剪枝算法:
5.5 CART算法
分类与回归树(classif and regression tree,CART)模型由Breiman等人在1984年提出,是应用最广泛的决策树学习方法。
CART同样由特征选择、树的生成及剪枝组成,既可以用于分类也可以用于回归。
CART是在给定输入随机变量条件下输出随机变量的条件概率分布的学习方法。
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值“是”的分支,右分支是取值为“否”的分支。
这样的决策树等价于递归地二分每个特征,将输入空间(特征空间)划分为有限个单元,并在这些单元上确定预测的概率分布。
CART算法由以下两步组成:
(1) 决策树生成:基于训练数据生成决策树,生成的决策树要尽量大;
(2) 决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。
5.5.1 CART生成
决策树的生成就是递归地构建二叉决策树的过程。对回归树
用平方误差最小化准则,对分类树
用基尼指数(Gini index)最小化准则进行特征选择,生成二叉树。
- 回归树的生成
这样的回归树通常称为最小二乘回归树,该算法可被叙述如下:
- 分类树的生成
分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点。
首先定义基尼指数:
基尼指数表示集合D的不确定性,基尼指数表示经分割后集合D的不确定性。基尼指数值越大,样本集合的不确定性也就越大,这一点与熵相似。
CART生成算法可被叙述如下:
5.5.2 CART剪枝
CART剪枝算法从“完全生长”的决策树的底端剪去一些子树,使决策树变小(模型变简单),从而能够对未知数据有更准确的预测。CART剪枝算法由两部组成:首先从生成算法产生的决策树底端开始不断剪枝,直到的根结点,形成一个子树序列; 然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择最优子树。
-
剪枝,形成一个子树序列
- 在剪枝得到的子树序列中通过交叉验证选取最优子树
现在写出CART剪枝算法
本章概要
分类决策树模型是表示基于特征对实例进行分类的树形结构,可以转换成一个if-then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布。
决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的决策树。因为该问题是个NP-Complete问题,现实中采用启发式方法学习次优的决策树。
决策树学习算法包括3部分:特征选择、树的生成和树的剪枝。常用的算法有ID3、C4.5和CART。-
特征选择的目的在于选取对训练数据能够分类的特征。常用的准则如下:
(1) 信息增益(ID3算法采用)
(2) 样本集合D对特征A的信息增益比(C4.5采用)
(3) 样本集合D的基尼指数(CART采用)
-
决策树的生成
-
决策树的剪枝