决策树

本文摘抄自《机器学习》一书,作者:周志华

  • 决策树

决策树是基于树结构来进行决策的,决策过程中提出的每个判定问题都是对某个属性的“测试”。一棵决策树包含了一个根结点、若干个内部结点和若干个叶结点。叶结点对应于决策结果,其它每个结点对应于一个属性测试。每个结点包含的样本集合根据属性测试的结果被划分到子结点中。根结点包含样本全集。决策树算法流程如下图所示:

决策树学习基本算法
  • 信息增益(ID3)

显然决策树的生成是一个递归过程。从上图可以看出,决策树学习的关键是如何选择最优划分属性。我们希望决策树的分支结点所包含的样本尽可能的属于同一类别,即结点的纯度越来越高。我们使用信息论中的信息增益这一指标进行度量。假定当前样本集合D中第k类样本所占的比例为p_{k}(k=1,2,...,\left | y \right |),则D的信息熵定义为:

                                                                    Ent(D)=-\sum_{k=1}^{\left | y \right |}p_{k}log_{2}p_{k}

Ent(D)的值越小,则D的纯度越高。

假定离散属性a有V个可能的取值\left \{ a^{1},a^{2},...,a^{v} \right \},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在a上取值为a^{v}的样本,记为D^{v}。我们可计算出D^{v}的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重\frac{\left | D^{v} \right |}{\left | D \right |},即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的信息增益:

                                                          Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}Ent(D^{v})

一般而言,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大。因此可用信息增益来进行决策树的划分属性选择。(举例计算见书P75)

  • 增益率(C4.5)

实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,我们不直接使用信息增益,而是使用“增益率”来选择最优划分属性。增益率定义为:

                                                                 Gain_{-}ratio(D,a)=\frac{Gain(D,a)}{IV(a)}

其中:

                                                                    IV(a)=-\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}log_{2}\frac{\left | D^{v} \right |}{\left | D \right |}

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

  • 基尼指数

CART决策树(分类和回归任务都可用)使用“基尼指数”来选择划分属性。数据集D的纯度可用基尼值来度量:

                                                                Gini(D)=\sum_{k=1}^{\left | y \right |}\sum_{k^{'}\neq k}p_{k}p_{k^{'}}=1-\sum_{k=1}^{\left | y \right |}p^{2}_{k}

直观来说,基尼值反应了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此基尼值越小,则数据集D的纯度越高。属性a的基尼指数定义为:

                                                                Gini_{-}index(D,a)=\sum_{v=1}^{V}\frac{\left | D^{v} \right |}{\left | D \right |}Gini(D^{v})

因此我们选择基尼指数最小的属性作为最优划分属性。

  • 剪枝处理

剪枝是决策树学习算法对付过拟合的主要手段。主要包括预剪枝和后剪枝。预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上的对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能的提升,则将该子树替换为叶结点。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值