决策树知识

引言

决策树模型在监督学习中非常常见,可用于分类(二分类、多分类)和回归。虽然将多棵弱决策树的Bagging、Random Forest、Boosting等tree ensembel 模型更为常见,但是“完全生长”决策树因为其简单直观,具有很强的解释性,也有广泛的应用,而且决策树是tree ensemble 的基础,值得好好理解。一般而言一棵“完全生长”的决策树包含,特征选择、决策树构建、剪枝三个过程,这篇文章主要是对决策树学习过程中的问题进行简单解释。

决策树算法简介

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node) 和有向边(directed edge)组成.结点有两种类型:内部结点(internal node)和叶结点(leaf node),内部结点表示一个特征或属性,叶结点表示一个类。

用决策树分类,从根结点开始,对实例的某-特征进行测试,根据测试结果,将实例分配到其子结点:这时,每一-个子结点对应着该特征的-一个取值,如此递归地对实例进行测试并分配,直至达到叶结点最后将实例分到叶结点的类中。

下图是一个决策树的示意图,图中圆和方框分别表示内部结点和叶结点。
在这里插入图片描述
例如下图:
在这里插入图片描述
决策树模型为(图中绿色和橙色分别表示内部结点和叶结点):
在这里插入图片描述
每个非叶节点表示一f个特征属性测试。
每个分支代表这个特征属性在某个值域上的输出。每个叶子节点存放一+个类别。
每个节点包含的样本集合通过属性测试被划分到子节点中,根节点包含样本全集

属性测试的目标是让各个划分出来的子节点尽可能地“纯”,即属于同一类别
因此我们的重点就是量化纯度的具体方法,决策树最常用的算法有三种:ID3C4.5CART

ID3算法的缺陷

ID3由Ross Quinlan在1986年提出。ID3决策树可以有多个分支,但是不能处理特征值为连续的情况。决策树是一种贪心算法,每次选取的分割数据的特征都是当前的最佳选择,并不关心是否达到最优。在ID3中,每次根据“最大信息熵增益”选取当前最佳的特征来分割数据,并按照该特征的所有取值来切分,也就是说如果一个特征有4种取值,数据将被切分4份,一旦按某特征切分后,该特征在之后的算法执行中,将不再起作用,所以有观点认为这种切分方式过于迅速。ID3算法十分简单,核心是根据“最大信息熵增益”原则选择划分当前数据集的最好特征,信息熵是信息论里面的概念,是信息的度量方式,不确定度越大或者说越混乱,熵就越大。在建立决策树的过程中,根据特征属性划分数据,使得原本“混乱”的数据的熵(混乱度)减少,按照不同特征划分数据熵减少的程度会不一样。在ID3中选择熵减少程度最大的特征来划分数据(贪心),也就是“最大信息熵增益”原则。
ID3的缺点:

  • ID3没有考虑连续特征,比如长度,密度都是连续值,无法在ID3运用。这大大限制 了ID3的用途。

  • ID3采用信息增益大的特征优先建立决策树的节点。在相同条件下,取值比较多的特征比取值少的特征信息增益大。比如一个变量有2个值,各为1/2,另一个变量为3个值,各为1/3,其实他们都是完全不确定的变量,但是取3个值的比取2个值的信息增益大。

  • ID3算法对于缺失值的情况没有做考虑。

  • 没有考虑过拟合的问题。

那么对于ID3算法的第二个缺点,为什么倾向特征选项较多的特征呢?

在X发生的情况下,Y的熵称为条件熵 H ( Y ∣ X ) H(Y|X) H(YX)。显然地,有公式:
在这里插入图片描述
上述公式表示:(X,Y)发生所包含的熵(它是个并集),减去X的熵,即为Y发生“新”增的熵。

信息增益:表示得知特征A的信息而使得D集合的信息不确定性减少的程度。它为集合D的经验熵减去特征A的条件熵。公式表示为:
在这里插入图片描述
信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大

考虑一个极端情况,某个属性(特征)的取值很多,以至于每一个取值对应的类别只有一个。这样根据
在这里插入图片描述
可以得知后面的那一项的值为0。这样得到信息增益会很大。

所以ID3算法的会倾向特征选项较多的特征呢

条件熵和信息增益的关系

信息增益描述了一个特征带来的信息量的多少,往往用于特征选择

信息增益 = 信息熵 - 条件熵

借用上一问题的答案

在X发生的情况下,Y的熵称为条件熵 H ( Y ∣ X ) H(Y|X) H(YX)。显然地,有公式:
在这里插入图片描述
信息增益:表示得知特征A的信息而使得D集合的信息不确定性减少的程度。它为集合D的经验熵减去特征A的条件熵。公式表示为:
在这里插入图片描述

假定数据集 D D D中离散属性 a a a V V V个可能的取值,若使用 a a a对数据进行划分,则会产生 V V V个分支节点,其中第 v v v个分支节点包含了 D D D中所有在属性 a a a上取值为 a v a^v av的样本,记为 D v D^v Dv,可以用属性 a a a对样本集 D D D进行划分所得的信息增益( information gain)
在这里插入图片描述
后一项即为条件熵

信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大

联合以上公式,可得:
在这里插入图片描述
它显示是典型的计算两个集合的交集公式,这可以表示D和A之间的互信息。

决策树的损失函数

《统计学习方法》5.1.4决策树学习一节中介绍,决策树的损失函数通常是正则化的极大似然函数。

我们知道正则化的损失函数中前一项代表经验误差,而在概率模型中(决策树模型是一种概率模型),经验误差函数的获得往往通过将极大似然函数取反,即将求极大化为求极小而获得。因此,在概率模型中,极大似然函数与经验误差函数可以认为是相同的概念,那么必然就可以通过经验误差函数来推导出极大似然函数,以此来加深对决策树损失函数的理解。

决策树剪枝是简化已经生成的复杂的决策树,防止过拟合,使生成的决策更一般化,下面介绍决策树剪枝原理

在这里插入图片描述
t t t是树的叶节点, N t N_t Nt表示该叶节点的样本数量, H t ( T ) H_t(T) Ht(T)表示结点t上的经验熵,所以右边第一项相当于对决策树的所有叶节点求熵,并以每个叶节点包含的样本数量为权重。又因为熵的含义为随机变量不确定性的度量,所以右边第一项的计算意义为模型对训练集的预测误差

损失函数分解为:
在这里插入图片描述
在这里插入图片描述
那么右边第二项又是什么含义, T T T表示树的叶节点个数,即表示树的复杂度, a a a为参数,相当于 a a a越大,叶节点的个数对损失函数的影响越大,剪枝之后的决策树更容易选择复杂度较小的树, a a a越小,表示叶节点的个数对损失函数的影响越小,所以 a a a的大小控制了预测误差与树的复杂度对剪枝的影响。

所以当a确定时,损失函数最小的子树越大,表明与训练数据的拟合越好,但是树也越复杂,子树越小,与训练数据的拟合越差,但树的复杂度较小,避免了过拟合,提高决策树的一般性,损失函数正好表示了对两者的平衡。
在这里插入图片描述

以上仅为作者一己之见,如有理解错误欢迎大佬评论指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值