决策树算法原理以及ID3、C4.5、CART算法

目录

决策树

决策树原理

构建决策树的大致注意事项

ID3算法

算法核心

核心思想

原理

步骤

补充内容

熵(Entropy)

信息熵

集合S的信息熵计算(划分前的信息熵)

各个子集的信息熵和计算(划分后的信息熵)——条件熵

信息增益(划分前-划分后)

ID3算法的缺点

C4.5算法

改进点

信息增益率

CART算法

特点

基尼指数

后续


决策树

决策树原理

首先看一下百度百科给的解释:

内容还是一如既往的抽象,下面是我的理解:

决策树是一个利用概率用来解决问题的图解法,他会再已知各种情况发生概率的基础上,通过构成一棵树的形状来求取净现值的期望值大于或等于0的概率

(净现值是什么意思呢?净现值=未来现金净流量现值 - 原始投资额现值 ,这是金融学的术语。放到我们机器学习中往往就是:

通过某种方法处理未来数据得到一个和概率有关值-这种方法处理已知的数据得到的一个和概率有关的值)

现在不懂没关系,太抽象了,接着往下看。

我们要知道,决策树由根节点,子节点,叶节点组成。

(根节点是树的顶端,子节点就是树内部的节点,叶节点就是一个树的叶子,在这里表示为,最后得到的对某样本点的特征判断后,得到类别。)

(所以我们也说决策树算法也是一种判断算法)

所以决策树就是:

1.通过递归的形式,以一种对概率处理的技术(一般都是以信息熵的形式),处理各个特征相对于样本的概率得到一个值。

2.筛选出处理后的值与总样本被该技术处理后的值相差最大的值为根节点,然后根据根节点对应的特征有的各个情况,将样本分成各个子样本。

3.然后对各个子样本进行相同的处理,就是也是筛选出子样本里面的各个特征,被处理后的值,与子样本被该技术处理后的值相差最大的,所对应的特征,这样得到子节点。

4.然后再根据子节点对应的各个特征再分子数据集,得到下一阶段的子数据集,这样不断的递归,最后得到一个结果或者说类别作为叶节点(也就是按照上面的推断得到的最后的结果)。

这也同样是决策树的构建步骤。

大致是这样的,可能到这里还是不明白,或许存在很多疑惑,没事接着往下看就是了。

决策树算法的核心思想其实是贪心算法,因为其每一步选择都采取了在当前状态下最优的选择。

构建决策树的大致注意事项

第一:首先判断我们的样本数据集里面的所有样本点最后是不是属于同一个类别,如果是,那就是一个单节点树,额,这种情况很少见。

第二:判断我们的数据集中的各个特征,如果我们特征的集合是空集,那么就直接将该集合内最多的类作为该集合的类。

第三:第一第二都不符合的情况下,我们就需要根据相应的公式对各个特征计算其对样本数据集信息增益,信息增益比,基尼指数等,然后选择适合的特征作为节点

建立决策树的关键是:在当前状态下选择哪个特征作为将数据集划分的依据

建立决策树主要有以下3钟算法:ID3,C4.5,CART

(这三个的名字就这样叫)

ID3算法

算法核心

核心就是“信息熵”,期望信息越小,信息熵越大,从而样本纯度越低,什么意思呢?就是信息熵越小的话样本内部就越杂乱,比如说样本内部样本点的特征有好多种,每一种还对应着该样本点好多个类别,这样构造决策树就很麻烦,预测的准确度也不高。

核心思想

以信息增益来度量特征选择,选择特征增益最大的的特征进行样本集的分裂。

(算法采用自顶向下的贪婪搜索遍历所有可能的决策树空间,也就是计算时会用到所有有关的样本)

原理

:它是以信息论为基础,以信息增益为衡量标准,从而实现对数据的归纳分类。

步骤

1.初始化特征集合和数据集合

2.计算数据集合信息熵和所有特征的条件熵,选择信息增益最大的特征作为当前的决策节点

3.更新数据集合和特征集合(删除第2步使用的特征,并按照特征值来划分不同分支的数据集合)

4.重复第2第3两步的操作(其实放在代码里就是一个简单的递归运算,或者说用到了递归的思想),若子集值包含单一特征,则该特征为一个节点,该节点下面的分支对应的就是叶节点。也就是我们所说的样本点的类别。

补充内容

熵(Entropy)

这个概念最早出现在热力学中。它的物理意思表示该体系的混乱程度。简单地说,如果该体系下的分子运动杂乱程度增加,则该体系的熵也随之增加。在熵这个概念普及之后,1948年,信息论之父克劳德·艾尔伍德·香农提出了信息熵的概念,用来描述信息的混乱程度或者信息的不确定度。(据说香农的墓碑上只刻了信息熵的计算公式。)

信息熵

假设变量X的随机取值为X={x1,x2,...,xn },每一种取值的概率分别是{p1,p2,p3,...pn },则变量X 的熵为:

举例说明:

#如果有4个球,1个颜色。

则该颜色的球所占比例为1,可计算该集合的信息熵=-1*log2(1)=0

#如果有4个球,4个不同颜色。

则每种颜色的球所占比例为1/4,可计算该集合的信息熵=-4*1/4*log2(1/4)=2

#如果有8个球,8个不同颜色。

则每种颜色的球所占比例为1/8,可计算该集合的信息熵=-8*1/8*log2(1/8)=3

可见,系统的熵最小为0,最大可以无穷。熵越小,说明集合的纯度越高。

集合S的信息熵计算(划分前的信息熵)

设有限个样本点集合S,分类属性为C={C1, C2,…, Ck},假设当前样本集合S中第i类(即Ci)样本所占的比例(或称其为概率)为pi(i=1,2,...,k),则样本集S的信息熵为:

 

或者描述为

(当然有些地方是H(S)=.........,我个人其实也是习惯用H(S)的包括下面用到E()我其实都更喜欢用H(),但是额。。。。这个公式我懒得打了,就用了某教材上的了,这两个是一个意思)

意味着C是分类属性,S相对于C的信息熵。

信息熵的值越大,集合的纯度越低。不难证明,当pi=1时,信息熵=0,取最小值,集合纯度达到最高。此外,也可以证明,当(p1=p2=...=pk=1/n),信息量的不确定程度最大,信息熵达到最大值。

各个子集的信息熵和计算(划分后的信息熵)——条件熵

显然,对于父结点,需要选择一个最佳划分条件,使得利用这个划分条件划分后的各个子集的纯度更高,即划分后的信息熵的值达到最小。

假设某特征A有V个可能的取值{a1, a2, …, av},若使用A来对样本集S进行划分,则会产生V个分支结点,即得到S的V个子集{S1, S2, …, Sv},其中,Si(i=1,2,...,v)中包含了S中所有,在特征A上取值为ai的样本集。可根据式E(Si)计算出 Si的信息熵,再考虑到不同分支结点所包含的样本数不同,给分支结点赋予权重| Si|/|S|,即样本数越多的分支 结点的影响越大,从而可得用属性A对样本集S进行划分后的信息熵。我把这个熵理解为所有子集的信息熵之和。

其实这个信息熵也被称之为条件熵

(有时候会用H(S|A)来表示)

根据信息熵的概念,E(S, A)的值越小,表明利用条件属性A对S进行子集划分的纯度越高,即分类能力越强。

信息增益(划分前-划分后)

为了测试条件属性A的效果,需要比较父结点与子结点之间的纯度差异,这种差异越大,则说明该测试条件越好,即该条件属性的分类能力越强,而信息增益(information gain)则是这种差异的判断标准。用条件属性A划分样本集合S所得的信息增益为:

Gain(S,A)=E(S)-E(S,A) (3-3)

这个信息增益很多时候是用 g(S,A)=H(S)-H(S | A) 来表示

H(S | A)就是上面的条件熵

一般而言,信息增益越大,则意味着使用属性A来进行划分所获得的“纯度提升”更大。因此,可采用信息增益来进行决策树的划分属性选择。

ID3算法的缺点

ID3的缺点其实也很明显:

第一.ID3没有剪枝策略,容易过拟合(剪枝策略下一章博客会讲述)

第二.信息增益准则对可取值数目较多的特征有所偏好,类似‘编号’的特征其信息熵增益近似于1,也就是说信息增益再可取值多的特征上会表现得比较大,影响最终决策树的构建从而影响结果。

第三.只能用于处理离散分布的特征

第四.没有考虑缺失值

C4.5算法

改进点

C4.5算法是对ID3的算法的改进,因为是改进,所以大多基本都是相同的,下面将介绍几个改进点。

C4.5较于ID3算法的改点:

第一.引入信息增益率 Gain_{ratio}(D,A),来作为分类标准,也就是把信息增益换成了信息增益率,这样做可以客服ID3对特征数目的偏重的缺点

第二.在决策树构造的时候进行剪枝,引入悲观剪枝策略进行后剪枝(剪枝下一章博客会讲)

第三.能处理非离散数据

第四.能够对不完整的数据进行处理(以后会介绍)

信息增益率

其实就是某特征的信息增益/总样本集信息熵

(本图中D是总样本集,D_{i}表示的总样本集中某类别占的某部分子集,H_{A}(D)是表视总样本集中各个类别的信息熵或者说样本的信息熵,另外,本图的表示方法才是我习惯用的)

CART算法

特点

在该算法中选择特征的方法是基尼指数,基尼指数越小,不纯度越低,特征越好。

该算法可以用于创建分类树也可以用于创建回归树

如果目标变量(样本特征)是离散的,创建分类树,如果是线性的创建回归树

CART分类树采用的是叶子节点(叶节点也就是最后结果,上面的那一个子节点)离概率最大的类别作为当前节点的预测类别

基尼指数

基尼指数也称之为基尼系数,表示在一个样本集中一个随机选中的样本被分错的概率。

下面用某本教材的照片截图来介绍怎么计算基尼指数(我觉得这个教材介绍的还怪清楚的):

这个Gini(D | A)可能需要说一下,D_{i}表示的当某特征取某一个值,该值所对应的样本集合,D就是总样本集合,他们的绝对值相比就是所谓的某特征值样本集对应的概率。

后续

本篇博客主要介绍决策树,CART分类树或者说CART算法知识简单的提了一下关键点。

后续会仔细的介绍决策树的实现(ID3算法实现),以及剪枝策略还有CART分类树的详情还有实现注意事项

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值