ML经典算法:决策树(1)

        决策树 (decision tree ,或称判定树)是一类常见的机器学习方法,其核心思想是通过构建一个树状模型来对新样本进行预测。树的叶结点是预测结果,而所有非叶结点皆是一个决策过程。


1. 简介

先看下周志华的西瓜书中所举的例子:
        如,我们要对"这是好瓜吗?“这样的问题进行决策时,通常会进行一系列的判断或"子决策"我们先看"它是什么颜色?”,如果是"青绿色",则我们再看"它的根蒂是什么形态?",如果是"蜷缩",我们再判断"它敲起来是什么声音?",最后?我们得出最终决策:这是个好瓜.这个决策过程如图 所示:
        在这里插入图片描述
        显然决策过程的最终结论对应了"是"或"不是"好瓜;决策过程中提出的每个判定问题都是对某个属性的"测试",例如"色泽=?" “根蒂:?”;每个测试的结果或是导出最终结论,或是导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内,例如若在"色泽=青绿"之后再判断"根蒂=?",则仅在考虑青绿色瓜的根蒂。

        一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子结点中;根结点包含样本全集.从根结点到每个叶结点的路径对应了一个判定测试序列。
        决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的"分而治之" (divide-and-conquer)策略,如下图所示.
在这里插入图片描述
        在上图所展示的决策树基本算法中,可以看到决策树的生成是一个递归过程.在决策树基本算法中,有三种情形会导致递归返回: (1) 当前结点包含的样本全属于同一类别,无需划分; (2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分; (3) 当前结点包含的样本集合为空,不能划分.

2. 划分选择

        决策树学习的关键是如何选择最优划分属性一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度" (purity)越来越高.

2.1 信息增益(决策树ID3算法)

        我们可以以信息增益(information gain)为准则来选择划分属性,信息增益越大,则意味着使用属性 α 来进行划分所获得的"纯度提升"越大。
        假定离散属性 α 有 V 个可能的取值 {α1 , α2. …, αv},若使用 α 来对样本集D 进行划分,则会产生 V 个分支结点,其中第 u 个分支结点包含了 D 中所有在属性 α 上取值为 α" 的样本记为 Du. 先计算出 Du的信息熵(下面会介绍),再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 IDuI / IDI ,即样本数越多的分支结点的影响越大,于是可计算出用属性 α 对样本集 D 进行划分所获得的"信息增益",公式如下:
        在这里插入图片描述
        其中Ent(D)为"信息熵" (information entropy),信息熵是度量样本集合纯度最常用的一种指标。假定当前样本集合 D 中第 k 类样本所占的比例为 Pk (k = 1,2,. . . , IYI) , D的信息熵定义为:Ent(D)
在这里插入图片描述           在这里插入图片描述            在这里插入图片描述
        Ent(D) 的值越小,则 D 的纯度越高. 可以看到下图为log2曲线,D越纯表明某些概率P很大,而log2P越大(负数),最后 -Plog2P越小。
        在这里插入图片描述

2.2 增益率(C4.5 决策树算法 )

        上面介绍了信息增益来进行属性划分,但有些时候,某些属性对预判结果的准确性没有很大影响,但却会因为某些原因有很大的信息增益,如样本编号,每个样本编号仅包含一个样本,导致计算出来的信息增益很大,但样本编号和判定结果却没有什么联系。
实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法使用"增益率" (gain ratio) 来选择最优划分属性,增益率定义为:
        在这里插入图片描述
其中:
        在这里插入图片描述
        IV(a) 称为属性 α 的"固有值",属性 α 的可能取值数目越多(即 V 越大),则 IV(α) 的值通常会越大。
        因此为了更好地划分属性,先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

2.3 基尼指数(CART 决策树算法)

        属性 α 的基尼指数定义为:
        在这里插入图片描述
        将基尼指数最小的属性作为最优划分属性。
        其中Gini(D) 为基尼值,数据集 D 的纯度可用基尼值来度量:
        在这里插入图片描述
        Gini(D) 反映了从数据集 D 中随机抽取两个样本,其类别标记        不一致的概率.因此, Gini(D) 越小,则数据集 D 的纯度越高。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂奔的菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值