决策树

介绍

解决的问题:分类问题,有监督学习

目的:产生一颗泛化能力强,即处理未知示例能力强的决策树。

组成

  1. 根节点--包含样本全集
  2. 内部节点--由属性测试的结果划分到集合
  3. 叶结点--对应决策结果

根节点到叶结点的路径为判定序列

基本流程

遵循分而治之的策略

  1. 给定训练集合D和属性集合A,设定函数TreeGenerate(D,A);
  2. 生成节点node;
  3. 判断D中的样本属于同一类别C,则将node标记为C类叶节点(一是标记为叶结点二是设为C类),然后返回;
  4. 判断属性结合A为空集或者训练集合D中在属性集合A中取值相同,则将node节点标记为叶结点,类别设定为D中样本数最多的类,然后返回;
  5. 从属性集中选择最优划分属性
  6. 对得到的最有划分属性中每一个属性值,为node生成一个分支;相对应的有对应与属性值的样本子集;如果样本子集为空集,则将分支节点标记为叶结点,类别设定为D中样本数最多的类,然后返回;如果样本子集不为空集,z则以TreeGenerate(D,A\样本子集)为分支节点;循环处理每一个属性值;

注:TreeGenerate(D,A\样本子集)--A中不包括已经设置的属性值的样本,在第6步中是一个递归调用

递归返回条件

  1. 当前节点包含的样本属于同一分类
  2. 当前属性值的样本集为空或者所有样本在所有属性上取值相同,无法划分
  3. 当前节点包含的样本集为空

情形2--将当前节点标记为叶结点,将类别设定为本节点包含样本最多的类别,利用当前节点的后验分布

情形3--将当前节点标记为叶结点,将类别设定为父节点包含样本最多的类别,利用当前节点的先验分布

划分选择

关键是如何选择最优划分属性?

目的:当前分支节点所包含的样本尽可能属于同一类别,追求纯度的提高。

度量纯度的方式

信息增益

信息熵:表示各个类别样本数所占总体样本D的比例,的值越小,纯度越高。

信息增益:离散属性a有多个可能取值,使用此属性对样本进行划分,会产生多个分支节点,每个节点 包含了对应属性可能值的样本子集,(每个属性包含的样本可能有多个类别),可以计算出每个样本子集的信息熵(西瓜问题中每个子集中有两种类别--好瓜和坏瓜,分别计算出两者的比例就可求熵)。但又考虑到样本数越多的分支节点产生的影响越大,因此给每一个分支节点分配权重(根据所包含的样本子集占总体样本的比例分配)。

信息增益越大,采用属性值a划分效果越好--纯度越高。

因此算法第8行采用的公式为 --ID3决策树学习算法采用信息增益准则来划分。

使用方法:先计算根节点的熵,在根据属性值的可能取值划分样本,分别计算各样本的熵,从而算出此属性对应的信息增益;

然后依次计算出其他属性的信息增益,最后比较个信息增益,选择最大的一个作为划分属性,然后在基于各个属性取值划分的样本上继续求最优划分属性。

缺点:取值数目较多的属性有所偏好

增益率

解决信息增益带来的偏好影响,C4.5算法采用增益率来选择最优划分属性。

  

称为属性a的固有值,属性a的可能取值数目越多(V越大),越大。

缺点:对取值数目较小的属性有所偏好

C4.5算法并没有直接采用增益率准则,是采用启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

基尼指数

CART决策树使用基尼指数选择划分属性。

数据集D的纯度使用基尼值来度量:反映了从数据集随机抽取两个样本,类别标记不一致的概率。基尼值越小,数据集D纯度越高。

属性a的基尼指数定义为:

在候选属性集合A中,选择划分后基尼指数最小的属性最为最优划分属性。

剪枝处理

决策树算法对付“过拟合”的主要手段。

过拟合--划分过程不断重复,造成决策树分支过多,模型学得太好。将训练集的特性当作一般性质。

基本策略:预剪枝、后剪枝

预剪枝--决策树生成过程中,对每个节点在划分前进行估计,若当前节点的划分不能带来决策树泛化性能的提升,则停后剪枝--先从训练集生成一颗决策树,然后自底向上对非叶结点进行考察,若将该节点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

如何判断决策树泛化性能的提升?使用模型评估中的留出法。假定采用信息增益准则进行划分属性选择。

预剪枝

仅有一层划分的决策树亦称"决策树桩"。

优点:使得决策树的很多分支都没有展开,降低了过拟合的风险,显著减少了决策树的训练时间开销和测试时间开销。

缺点:带来了欠拟合的风险。虽然有些分支当前划分不能带来泛化性能的提升,也有可能下降,但是在此基础上的后序划分可能带来泛化性能的显著提升。但是预剪枝基于贪心的本质禁止了分支展开。

后剪枝

比预剪枝保留更多分支

优点:欠拟合的风险小,泛化性能往往优于预剪枝决策树。

缺点:先生成树再自底向上对非叶节点逐一考察,训练时间开销比未剪枝决策树和预剪枝决策树大的多

连续与缺失值

连续值处理

如何在决策树中使用 连续属性?

由于连续属性可取值无限,使用连续属性离散化技术

策略一:使用二分法。C4.5决策树使用了此方法

给定样本集D和连续属性a,在属性a上有多个取值,将这多个取值排序,基于某个划分点划分为两个集合,选择一个最优的划分点进行样本集合的划分。

注:对于相邻的属性值,划分点在两个值之间的取值产生的划分结果相同。因此,对于连续属性a,产生一个包含n-1个元素的候选划分点集合

把区间的中位点作为候选划分点。然后根据离散方法考察每一个划分点。比如,改造信息增益公式,

找出使值最大的t即可。

注意:若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性。

缺失值处理

需解决两个问题:

(1) 如何在属性值缺失的情况下进行划分属性选择?
(2) 给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?

给定训练集 D 和属性 α,令表示 D 中在属性a上没有缺失值的样本子集,

对于问题1

仅可根据样本子集来判断属性a的优劣。假定为每一个样本x赋予一个权重

对属性a, 表示无缺失值样本所占的比例; 表示无缺失值样本中第 k 类所占的比例;则表示无缺失值样本中在属性 a上取值的样本所占的比例。

信息增益计算式推广为

对于问题2

若样本x在划分属性 a上的取值己知,则将x划入与其取值对应的子结点,且样本权值在子结点中保持为

若样本x在划分属性 a上的取值未知,则将x同时划入所有子结点且样本权值在与属性值对应的子结点中调整为 ;直观地看,这就是让同一个样本以不同的概率划入到不同的子结点中去。

C4.5算法采用上述方案

多变量决策树

决策树所形成的分类边界有一个明显的特点:轴平行 (axis-parallel) ,即它的分类边界由若干个与坐标轴平行的分段组成.
使用斜的划分边界,非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试。每个非叶结点是一个形如的线性分类器,其中是属性的权重,和t可在该结点所含的样本集和属性集上学得。

学习目标:试图建立一个合适的线性分类器,不再是为每个非叶结点寻找一个最优划分属性。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值