机器学习——决策树(阅读笔记)
概述
决策树(decision tree) 也叫判定树。是基于树(一种数据结构)结构进行决策。主要用于分类问题。
目的:通过决策得到一个泛化能力强的树。
基本方式:通过一定手段对训练数据(Training Set)进行学习生成一颗决策树,再用验证集(Validation Set)来验证这棵树的决策能力,中间可能会通过一定方法来修改树的结构来提高树的泛化能力,最终生成相对最优的决策树。
策略:利用数据的属性进行“分而治之”,通过属性的判定,“递归”生成决策树
算法实现:
1.划分——属性选择
如何在众多的属性中选择某一个或者一类属性作为划分结点呢?用什么样的评价标准来判定结点划分的好坏?
评判标准:我们希望通过属性划分后,不同分支的数据集尽可能属于同一类,即:结点的“纯度”y越高越好
如何来判定划分后的纯度的高低呢?现在介绍常用的三种方法来衡量。
1.1 信息增益
信息熵:度量样本集合纯度的指标之一
公式:
其中:D表示所求的样本总体,|Y|表示D中的总体类别
信息熵与纯度:信息熵值越小,D纯度越高
但是,我们所求的是划分前后集合的纯度差异,所以我们计算其信息熵的差值——信息增益
公式:
其中:V表示属性a的V种可能取值,|Dv|/|D|表示分支Dv的权重
思想:最优解思想。在众属性中,找出信息增益最大者
现设想,当D中所有的个体关于a属性的取值都不同时,在使用a属性作为划分属性时,划分后每个个体都单独作为一个集合,显然纯度达到最大,这显然不是好的划分方式。
局限:信息增益对可取值数目多的属性有所偏好
1.2 增益率
增益率摒弃了直接采用信息增益最高这种最优解方法选取划分属性,而是采用启发式的思想。
思想:从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性值。
公式:
局限:增量率准则对可取值数目较少的属性有所偏好。
1.3 基尼指数
基尼值:衡量数据集D纯度的指标之一
公式:
基尼值与数据集纯度:基尼值越小,数据集的纯度越高
关于属性a的基尼指数公式:
思想:选择基尼指数最小的属性作为最优划分属性
2. 剪枝处理
2.1 前言
对于数据集D来说,采用正常的流程求解决策树,会得到精确到每一个个体的树结构。这样的话,就会因为训练样本学的“太好”,导致把训练集自身的一些特点当作所有数据都具有的一般性质而致使“过拟合”。所以我们需要通过一些方法来降低过拟合的风险。
2.2 预剪枝
思想:在决策树生成的过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能的提高,则停止划分并将当前结点标记为叶结点
过程:采用数据抽取的方法“留出法”将训练集一部分数据作为验证集,分别对每个属性作测试,在构建树的过程中,通过验证集来验证属性划分前后准确识别验证集的精度来判定是否进行当前属性划分。
注意:是先得到最优解属性后再进行验证
优点:明显降低过拟合的风险,大大减少训练时间开销和测试开销。
缺点:基于“贪心”本质禁止这些分支的展开,可能会带来欠拟合的风险
2.3 后剪枝
思想:先从训练集生成一课完整的决策树,然后自底向上的对非叶结点进行判断,将该结点对应的子树替换为叶结点能否带来树泛化性能的提升。
优点:欠拟合风险很小,泛化性能往往优于预剪枝决策树。
缺点:自底向上的方式进行判断,使得训练时间开销比未剪枝和预剪枝决策树都要大得多。
3.连续值、缺失值的处理
3.1 前言
我们前面研究的是离散型的属性集,也就是说属性值的取值是离散的。当属性值得取值是连续的时候,显然不能像前面一样,对每个取值做判断。
而当数据集中某个属性的取值是空缺的时候怎么办呢?显然最简单的方法就是将所有有缺失值的数据全部去掉,只使用完整的数据。但是,现实中并非理想条件,往往缺失数据占大部分,如果抛弃的话,会导致数据资源的大大浪费。
针对这两种情况,给出了以下常用的解决方案
3.2 连续值处理方案
思想:二分法,将D分为两类,D正和D负
机制:在给定的数据集D,若D中所有样本在连续属性a上有n种不同的取值(实数),现在将这n个值从小到大依次排列,一次计算相邻两个值的中位数,得到n-1个数的集合T。对连续属性a划分就是在T中找出最优的划分点。(当最优划分点不存在n中时,取不大于最优划分点的存在n中的最大值)
如何找到最优的划分点呢?
公式:
注意:不同离散属性,若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。
3.3 缺失值处理方案
两个问题:
1.如何在属性值缺失的情况下进行划分属性选择?
2.给定划分属性,若样本在该属性上的值缺失,如何处理该样本?
对于第一个问题:
机制:
对于数据集D,A表示没有缺失值的样本子集,B_v表示A在属性a上取值为a_v的集合,C_k表示A中属于第k类的集合,开始之前对每个样本赋值权重全为1(Wx)
公式:
对于第二个问题:
将缺失值的样本划入每一个分支中,将样本的权重调整为r_v乘上原来该样本的权重
4.多变量决策树
决策树在数轴上对样本分类有一明显的特点:轴平行
缺点:缺乏实用性,真实划分边界时,需要许多微小的线段组成,导致决策树很复杂,而使时间开销很大。
多变量决策树提出意义:通过“斜划分”对非叶结点不再仅对某个属性而是对属性的线性组合测试。
5.参考资料
周志华 《机器学习》 清华大学出版社