仅个人读书笔记.
本章知识点核心:特征选择+剪枝处理+连续与缺失值处理
决策树采取了递归的思想,可用于分类,也可以用于回归。包括3个步骤:特征选择、决策树的生成和决策树的修剪。主要有ID3、C4.5和CART三种算法。
4.1 基本流程
决策树:一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.
决策树生成的目的:从形式上,决策树就是一棵按照各个特征建立的树形结构,叶节点表示对于的类别,特征选择的顺序不同,得到的树的形状也不同。我们追求的是模型简单、效果好,直观上也就是建立的决策树深度越小越好(即:西瓜书中说的结点的‘纯度’越高越好)
举个例子:我们要对"这是好瓜吗?"
这样的问题进行决策会进行一系列的判断或"子决策",我们先看"它是什么颜色?",如果是"青绿色",则我们再看"它的根蒂是什么形态?",如果是"蜷缩",我们再判断"它敲起来是什么声音?",最后我们得出最终决策:这是个好瓜.
算法分析:决策树的生成是一个递归过程.在决策树基本算法中,有三种情形会导致递归返回:
(1) 当前结点包含的样本全属于同一类别,无需划分;
(2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
(3) 当前结点包含的样本集合为空,不能划分.
4.2 划分选择
决策树学习的关键:如何选择最优划分属性
随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度" (purity)越来越高.
可以想到,选择不同的特征顺序(分类顺序)会得到不同的树形结构,那么到底该怎样选择特征更好呢?直观上,如果一个特征在当前条件下具有最好的分类能力,那么就应该选择这个特征。这一准则如何定量描述呢?有三种方式:信息增益、信息增益率、基尼指数,分别对应的决策树分类算法为ID3、C4.5、CART。
4.2.1 信息增益
信息熵:是度量样本集合纯度最常用的一种指标.信息熵越小,样本集的纯度越高
ID3决策树学习算法:就是以信息增益为准则来选择划分属性.
缺点:信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法不直接使用信息增益,而是使用"增益率"来选择最优划分属性.
4.2.2 增益率
若在分类时,把编号作为划分属性,则每个分支节点只包含一个样本,分支结点的纯度达到最大,但是,这种决策树不具有泛化能力,无法有效预测新样本。
注意:增益率准则对可取值数目较少的属性有所偏好。C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的.
4.2.3 基尼指数
CART决策树使用"基尼指数" 来选择划分属性。
直观来说,基尼指数反映了从数据集 D 中随机抽取两个样本,其类别标记 不一致的概率.因此,基尼指数越小,则数据集 D 的纯度越高.
4.3 剪枝处理
剪枝:是决策树学习算法对付"过拟合"的主要手段。基本策略包括预剪枝、后剪枝
目的:在决策树学习中,有时会造成决策树分支过多,这时就可能因训练样本学得"太好"了,以致于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。
预剪枝:预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;
后剪枝:先从训练集生成一棵完整的决策树, 然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点.
4.4 连续与缺失值
4.4.1 连续值处理
决策树的生成不仅基于离散值,常会遇到连续属性。由于连续属性的可取值数目不再有限, 因此,不能直接根据连续属性的可取值来对结点进行划分。此时可采用连续属性离散化,最简单的策略是采用二分法对连续属性进行处理。
4.4.2 缺失值处理
现实任务中常会遇到不完整样本,即样本的某些属性值缺失。尤其是在属性数目较多的情况下,往往会有大量样本出现缺失值. 如果简单地放弃不完整样本,仅使用无缺失值的样本来进行学习,显然是对数据信息极大的浪费,有必要利用有缺失属性值的训练样例来进行学习。
我们需解决两个问题:
(1) 如何在属性值缺失的情况下进行划分属性选择?
(2) 给定划分属性?若样本在该属性上的值缺失,如何对样本进行划分?