决策树

本文详细介绍了决策树的基本流程、划分选择标准(信息增益、增益率、基尼指数)以及剪枝处理(预剪枝与后剪枝)。通过实例展示了如何利用信息增益和基尼指数选择最优划分属性,同时探讨了连续值处理和缺失值处理的方法。决策树的学习旨在构建泛化能力强的模型,剪枝则有助于防止过拟合,提高模型的泛化能力。
摘要由CSDN通过智能技术生成

一、基本流程

决策树是一类常见的机器学习方法,是一个类似于流程图的树形结构。

一颗决策树包含一个根结点、若干个内部结点和若干个叶结点。树的最高层是就是根结点;树内部的每一个结点代表的是对一个特征的测试,树的分支代表该特征的每一个测试结果;叶结点代表对应的决策结果。

下图即为一个决策树的示意描述,内部结点用椭圆表示,叶子结点用矩形表示。该决策树用于对一个用户是否可以偿还债务进行分类预测。

在这里插入图片描述

比如新来一个用户:无房产,单身,年收入55K,那么根据上面的决策树,可以预测他无法偿还债务(蓝色虚线路径)

决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的“分而治之”策略,如下图:
在这里插入图片描述

决策树构建的基本步骤如下:

  1. 开始,所有记录看作一个结点
  2. 三种情形导致递归返回:当前结点包含的样本全属于同一类别,无需划分;当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;当前结点包含的样本集合为空,不能划分。
  3. 遍历每个变量的每一属性,找到最优划分属性进行划分。
  4. 对分割后的数据集继续执行2-3步,直到每个节点足够“纯”为止。

二、划分选择

如何选择最优划分属性呢?一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”越来越高。

(一)信息增益

  • 信息熵 是度量样本集合纯度最常用的一种指标。

      E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k \ Ent(D) = - \sum_{k=1}^{|y|}p_{k}\log_{2}p_{k}  Ent(D)=k=1ypklog2pk

    其中,pk为当前样本集合D中第k类样本所占的比例。
    Ent(D)的值越小,则D的纯度越高。

假设离散属性a有V个可能的取值{a1, a2, …, av, },若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv。根据信息熵公式可以计算出Dv的信息熵。再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重|Dv|/|D|,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的 “信息增益”

  G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) \ Gain(D,a) = Ent(D) - \sum_{v=1}^{V} \frac{|D^{v}|}{|D|} Ent(D^{v})  Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。
因此,我们可以选择信息增益最大的属性a作为决策树的划分属性。
ID3决策树学习算法就是以信息增益为准则来选择划分属性的。

在这里插入图片描述
以上图所示的数据集为例,该数据集包含10个训练样例,用于学习一颗能预测一个新用户是否可以偿还债务的决策树。显然,|y|=2。在决策树学习开始时,根节点包含D中所有的样例,其中正例占p1=0.3,反例占p2=0.7。根结点的信息熵为

  E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k = − ( 0.3 log ⁡ 2 0.3 + 0.7 log ⁡ 2 0.7 ) = 0.881 \ Ent(D) = - \sum_{k=1}^{|y|}p_{k}\log_{2}p_{k} = - (0.3 \log_{2}0.3+0.7 \log_{2}0.7) =0.881  Ent(D)=k=1yp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值