决策树

申明,本部分内容参考了众多网上资料,如有侵权请联系删除。

总体介绍

决策树(decision tree) 是一种基本的分类与回归方法,利用树形结构进行决策。在进行决策过程中,通常会需要进行一系列的判断或“子决策”,而决策过程中提出的每个判定问题都是对某个属性的“测试”,每个测试的结果要么导出最终结论,要么导出进一步的判定问题。
一般的,一颗树包含一个根节点、若干个内部节点和若干个叶节点。叶节点对应于决策结果,其他节点则对应于一个属性测试。决策树学习的目的是产生一颗泛化能力强,即处理未见示例能力强的决策树。
决策树通常有三个步骤:特征选择、决策树的生成、决策树的修剪。
**常见决策树生成算法:**CART、ID3、C4.5、CLS、C5.0等
在这里插入图片描述

如上图所示为决策树的典型示例,“纹理”为根节点,“好瓜”/“坏瓜”为叶子节点,而其他方形节点则为内部节点。

决策树的优点

  1. 相比其他算法,决策树不需要进行太过复杂的数据预处理,如标准化、归一化等;
  2. 数据值的缺失不会在很大程度上影响决策树的建立;
  3. 可解释性强;
  4. 天然具备处理多分类问题的能力;
  5. 能处理特征间的非线性关系;

决策树的缺点

  1. 数据的微小变化可能导致整个树的结构发生巨大的变化,即结构不稳定;
  2. 决策树计算过程较其他算法较为复杂;
  3. 决策树通常需要花更多时间用于模型训练;
  4. 数据集较小时决策树性能不佳;
  5. 数据类别不平衡时可能会造成欠拟合;

划分选择

在构建决策树时,要考虑如何选择当前最优划分属性的问题。我们期望生成的决策树在实现有效的分类前提下,分支尽可能少,树的长度尽可能短,即整体尽可能高效。即,我们希望决策树的分支节点所包含的样本尽可能属于同一类别

分支选择标准

下面介绍几种常见的划分标准。

信息熵与信息增益

在这里插入图片描述

增益率

在这里插入图片描述

基尼系数

在这里插入图片描述

分支选择算法

上面三种分支选择标准,分别对应了ID3、C4.5和CART这三种最常见的决策树分支选择算法。
信息增益、增益率、基尼系数的计算方式参见视频:【数据挖掘】决策树零基础入门教程,手把手教你学决策树!本节不对该过程进行赘述。

ID3

ID3算法采用信息增益作为属性划分标准。
【优点】
a. 分支选取具有可解释性;
b. 在相对短的时间内构建相对短的树;
c. 整棵树分类完毕所需的时间是有限的;
d. 可以发现可以用于剪枝的叶子节点。
【缺点】
a. 信息增益比较偏重于可取值较多的属性(假若为该属性为Id,则选取该属性后信息熵为0)-> 如果样本量较小可能会出现过拟合;
b. 每做一个决定时只能考虑一个属性;

C4.5

由于ID3所采用信息增益会对可取值较多的属性有所偏重,因此C4.5采用增益率作为分类标准。但由于增益率会对可取值较少的属性有所偏重,因此C4.5并不直接选择增益率最大的候选划分属性,而是从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性。
【优点】
a. 具有可解释性;
b. 易于实现;
c. 适用于分类或连续值;
d. 能处理噪音数据;
【缺点】
a. 数据中小变化可能会影响整棵树的结构;
b. 在小数据集上效果不佳;

CART

CART采用基尼指数作为划分标准,每次选择划分后基尼指数最小的属性作为划分属性。
注意,CART是在这三类分支选择算法中唯一一个支持回归预测的模型,对于回归预测,它采用均方差作为评估指标。需要注意的是,CART是二分类模型,假使包含一个属性,有多个取值,如工资=[高,中,低],那么它每次分支选择将是 (工资=高)或(工资=中)或(工资=低)。即CART构建的是二叉树。
【优点】
a. 天然具有多分类特性;
b. 可解释性;
c. 能处理数字、类型数据;
d. 非线性关系不影响决策树性能表现;
【缺点】
a. 数据中小变化可能会影响整棵树结构;
b. 如果数据类型不平衡,可能会造成欠拟合;

剪枝

**剪枝(puring)**是决策树应对过拟合的主要手段。基本剪枝策略包含:预剪枝(prepurning)后剪枝(postpurning)
预剪枝:在决策树生成过程中,对每个节点在划分前进行估计,如果该节点的划分不能带来决策树泛化能力的提升,则停止划分并将该节点置为叶子节点;
后剪枝:先从训练集生成一颗完整的决策树,然后自底向上对非叶子节点进行考察,若该节点对应的子树节点替换成叶节点能提高泛化能力,则将其进行替换。
评估剪枝能否提高泛化能力,可以从训练集中取一部分作为验证集,用其来检验划分前后模型的性能,若性能更好,则划分,否则不划分。
预剪枝过程中,若需要判断的节点的子节点不是叶子节点,则可以对其每个取值中的数据分别采用投票法(即数量最多的那个)作为其预测值,来验证分类后的模型表现。预剪枝降低了过拟合的风险,减少了决策树的训练时间和测试时间开销,但不保证被剪掉的属性不能提升其精度,即
可能带来欠拟合的风险

后剪枝则自底向上分别对非叶子节点进行考察,同样适用验证集进行性能评估,若将其替换为叶子节点后性能提升,则将其替换,若替换后性能不变,也要替换(奥卡姆剃刀原理)。后剪枝通常比预剪枝能保留更多的分支,欠拟合风险很小,泛化能力优于预剪枝决策树,但其所需的时间开销会比预剪枝决策树更大。

连续与缺失值

连续值

连续值属性的可取值范围是无限的,因此需要对连续数值进行离散化。常见的离散化方法为二分法,这也是C4.5中所用到的策略,二分法的方法如下:
在这里插入图片描述

注意,对样本中n个取值,需要进行n-1次二分,分别对这n-1次二分计算最大信息增益,从而确定二分的位置。
注:不同于离散属性,连续属性仍可作为其后代属性的划分属性。

缺失值

数据集中存在缺失值时往往需要面对两个问题:
(1)如何在属性缺失的情况下进行划分属性选择?
(2)给定划分属性,若样本在该属性上的值缺失,该如何对该样本进行划分?
对于第一个问题,给出如下定义,其中为训练集D中取出来的在a属性上不存在缺失值的样本子集,  为  的一个子集划分,代表其中取值为  的样本子集,是中属于第k类的样本子集:
在这里插入图片描述
基于上述定义,推广信息增益:
在这里插入图片描述

对于第二个问题,若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,只不过此刻要调整该样本x的权重值为,直观的看,其实就是让同一个样本以不同的概率划入到不同的子节点中去。其中是有标记样本在该类别下的数量所占总有标记样本数量的比例。

多变量决策树

前面所用到的决策树均为单变量决策树,即每次决策都只针对一个变量进行考虑,该决策树所形成的分类边界将与坐标轴平行。
而多变量决策树则能实现“斜划分”。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值