这样理解决策树

决策树

1.基本流程

         决策树(Decisiontree)是一类常见的机器学习方法。决策树学习的目的是,从给定训练数据集学得一个模型用于对未见数据进行分类,我们希望这棵树泛化能力强,也就是说对未见示例的处理能力强。

下面看一个简单的范例:

        

         在对“这是好瓜吗?”这一问题进行决策的过程中,我们通常会进行一系列的子决策,如瓜的颜色、根蒂、敲起来的声音,才能得出最终的决策结果。一般的,一棵决策树包含一个根结点、若干内部结点和若干个叶结点;叶结点就是决策结果,其他结点对应于一个特征属性。直白地说,决策树就是If()语句的层层嵌套,最终做出决策。

2.信息熵

         决策树的学习关键是:如何选择最优划分属性,当然不是凭空随便选择,这里的原则就是:使用属性a所划分所获得的“纯度提升”越大。如何找到这样的属性呢,这里要先介绍一个概念信息熵。信息熵表示的是不确定性,熵越大,不确定性就越大。

 

这里可以用熵来表示集合的纯度,熵越小,集合纯度越高。假设当前样本集合D中第k类样本所占的比例为,则信息熵的定义为


多变量的联合熵:


条件熵

         H(X)度量了X的不确定性,条件熵H(X|Y)度量了知道Y条件下X的不确定性,那么H(X)-H(X|Y)呢?这里H(X)-H(X|Y)度量了X在知道Y的条件下不确定性的减少程度,我们称之为互信息,即。在决策树ID3算法中叫做信息增益,ID3算法就是用信息增益来判断当前节点用什么特征来构建决策树,信息增益越大,越适合用来做划分属性。下图所示可以清楚的明白它们的关系:


根据以上定义,用属性a对样本D进行划分所获得的“信息增益”可用下式计算:


         其中,属性a有V个可能的取值,若用a来对样本集D进行划分,会产生V个分支结点。为第v个分支结点包含了D中所有的在属性a上取值为的样本的数量,D为所有样本数。说了这么多,下面用一个小栗子,详细说明


         从表格中看出,总数据量|D|=14,买电脑9,不买的5人

属性age有三个可能的取值<=30,31-40,>40,样例个数分别为5、4、5,

<=30的5各个样例中含有2个买和3个不买,31-40的样例中含4个买和0个不买,>40的样例中有3个买和2个不买,根据式1计算出3个分支结点的信息熵



根据式2计算属性age的信息增益


同理,以income属性的信息增益为(4个high 2-2, 6个median 4-2, 4个low 3-1)

因此age属性信息增益最大,选择age属性作为根结点。


然后决策树学习算法将对每个分支结点做进一步划分,以age<=30为例,该结点包含样例集合中编号为的5个样例,可用属性集合为.基于计算出各属性的信息增益,选择最大的信息增益属性作为划分属性,对每个分支结点进行上述操作,即可得到最终的决策树。

3. C4.5算法(信息增益率)

         上面的例子中,我们有意忽略了表中的标号这一列,若把“编号”也作为一个候选划分属性,则根据式2可以计算出它的信息增益率为

远大于其他候选划分属性。这很容易理解:“编号”将产生14个分支,每个分支仅包含一个样本,这些分支结点的纯度已经达到最大,这样的决策树显然不具有泛化能力,无法对新样本进行有效预测。实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好带来的不利影响,使用增益率来选择最优划分属性。


属性a可能取值的数目越多即V越大,则的值通常会越大。需要注意的是,增益率准则对可取值数目较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是先从候选划分属性中找出信息增益高于平均水平的属性,在从中选择增益率最高的。

4.基尼指数

CART决策树使用“基尼指数”来选择划分属性,数据集D的纯度可用基尼值来度量:


直观来说,反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率,因此,越小,则数据集D的纯度越高。

属性a的基尼指数定义为



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

下面以上述例子详细说明基尼指数的计算

         age属性的基尼指数计算过程:

         属性 age有三个可能的取值<=30,31-40,>40,样例个数分别为5、4、5,

<=30的5各个样例中含有2个买和3个不买,31-40的样例中含4个买和0个不买,>40的样例中有3个买和2个不买,根据式5计算出3个分支结点的基尼值

基尼指数


同理,可得

5. 决策树算法优点和缺点

 

优点:

决策树很容易解释。它产生一组规则。

它遵循的方法与人类平时做出决策时的方法相同的。

复杂决策树模型的解释可以通过可视化来简化。即使门外汉也能够理解其逻辑。

要调整的超参数的数量几乎为零。

 

缺点:

决策树中过拟合的概率很高。

相比于其他机器学习算法,它对数据集预测精度较低。

带有分类变量的决策树对具有较大编号的类别得出的信息增益具有偏差。

当有很多类标签时,计算可能变得复杂。

 

6. 剪枝处理

         剪枝(Pruning)是决策树学习算法对付“过拟合”的主要手段,在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学的“太好”了,以至于把训练集自身的一些特点当做所有数据都具有的一般性质而导致过拟合,因此可通过主动去掉一些分支来降低过拟合的风险。过拟合通常发生于由于异常值和数据不规则而构建多个分支的时候。

         决策树剪枝的基本策略有“预剪枝”(prepruning)和“后剪枝”(postpruning)。

预剪枝:是在决策树的生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分即结束树的构建并将当前节点标记为叶结点;

后剪枝:是先从训练集生成一棵完整的决策树,然后自底向上地对叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化为性能提升,则将该子树替换为叶结点。泛化性能的提升可以使用交叉验证数据来检查修剪的效果,通过使用交叉验证数据,测试扩展节点是否会带来改进。如果显示会带来改进,那么我们可以继续扩展该节点。但是,如果精度降低,则不应该扩展,节点应该转换为叶节点。

下篇详细介绍剪枝。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值