【超详细】机器学习(西瓜书)第4章决策树知识详解

引入

“这个瓜是好瓜吗?”我们对这样的问题进行决策时,通常会进行一系列的判断或子决策:我们先看“它是什么颜色?”如果它是“青绿色”的,那我们再看“它的根蒂是什么形态?”,如果是“蜷缩”,我们再判断“它敲起来是什么声音?”,如果是“浊响”,那么最后,我们得到最终的决策结果——它是个好瓜……这是人类在面临决策问题时一种很自然的处理机制,而决策树就是基于这样的树结构进行建立的。

一、简单概念

1. 决策树是一种常见的机器学习算法,它是基于树结构来进行决策的。

 2. 一般的,一棵决策树包含一个根节点若干个内部结点若干个叶节点

3. 叶结点对应于决策结果,其他每个结点则对应一个属性测试

4. 每个结点包含的样本集合根据属性测试的结果被划分到子结点中,特别地,根节点包含样本全集。

5.从根节点到每一个叶节点的路径对应了一个判定测试序列

6.决策树学习的目的是为了产生一棵泛化能力强,即处理未知样本能力强的决策树,其基本流程遵循简单而直观的“分而治之”策略。

二、决策树学习基本算法

先摆出基本算法的伪代码



 解释:

  决策树的生成是一个递归的过程,在决策树的基本算法中,有三种情形会导致递归返回:

(1)当前结点包含的样本全属于同一个类别,无需划分;

(2)当前属性集为空,或是所有样本在所有属性上的取值相同,无法划分;

在(2)中的情形下,我们把当前结点标记为当前叶节点,并将其类别设定为该节点所含样本最多的类别

(3)当前结点包含的样本集合为空,不能划分;

在(3)中的情形中下,同样把当前结点标记为叶节点,但将其类别设定为其父结点所含样本最多的样本

注意:情形(2)是在利用当前结点的后验分布,而情形(3)则是把父结点的样本分布作为当前节点的先验分布。

接下来用Titanic简化数据集来具体说明三种情况

数据集D中有7组数据,Xi代表各组数据下不同属性下的不同取值,y即存活情况,y i 代表最终分类结果。X i ={性别 i,船舱等级 i,登船港口 i},y i={0,1}

根据上面的数据集画出的决策树如下:

红色数字代表第几类递归返回,蓝色圆圈中的数字代表叶结点。

(1)结点1在“ 性别 = 女 ”这一分类下,所有的存活情况全部为1 ,没有继续划分的必要,遂把该结点直接作为叶结点,种类就为1.

(2)结点2在“ 船舱等级 = 1”这一划分之后,所有的经过结点2的数据集Dv在所有的属性上的取值相同,无法继续划分,所以把该结点标记为叶结点,划分的种类为Dv中出现次数最多的类别0.  (数据集Dv包含数组3,4,7,均为M,1,S,结果种类为0,1,0)
         结点4和结点5,同理所有属性取值相同或者说是划分完了所有的属性(新属性集为空),无法继续划分,直接标记为叶结点,虽然就只有一组数据但是他们也是属于第二类递归返回的范围。

(3)结点3,在“ 性别 = 男 ”之后,“ 船舱等级 = 3”的样本集合为空集,不能划分,直接标记为叶结点,返回的种类为父结点 (也就是“ 性别 = 男 ”时)数据集的类别中出现次数最多的类别0. (从全部数据集中我们可以看出Pclass属性的取值为1,2,3,但是数据组3,4,5,6,7中都没有“ 船舱等级 = 3”,所以该取值下为空集)

三、划分选择

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

3.1度量样本集合纯度的指标

3.1.1信息增益

在使用信息增益之前我们先来了解一下信息熵。

信息熵是对事件中不确定信息的量度。自信息量是信源发出某一具体消息所含有的信息量,发出的消息不同所 含有的信息量不同。因此自信息量不能用来表征整个信源的不确定度。 我们定义平均自信息量来表征整个信源的不确定度。平均自信息量又称 为信息熵信源熵,简称

那么,如何计算信息熵?这是一个概率的计算问题:

假定离散属性 a V 个可能的取值 ,若使用a 来对样本集 D 进行划分,则会产生 V 个分支结点,其中第 v 个分支结点包含了 D 中所有在属性
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值