决策树

是表示基于特征对实例进行分类的树形结构

从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将训练数据进行分割,使得各子数据集有一个最好的分类的过程。

决策树算法3要素:

》特征选择

》决策树生成

》决策树剪枝

关于决策树生成

决策树的生成过程就是 使用满足划分准则的特征不断的将数据集划分为纯度更高,不确定性更小的子集的过程。

对于当前数据集D的每一次的划分,都希望根据某特征划分之后的各个子集的纯度更高,不确定性更小。

而如何度量划分数据集前后的数据集的纯度以及不确定性呢?
答案:特征选择准则,比如:信息增益,信息增益率,基尼指数

特征选择准则:

目的:使用某特征对数据集划分之后,各数据集的纯度要比划分前的数据集D的纯度高(不确定性要比划分前数据集D的不确定性低)

注意:

1.划分后的纯度为各数据子集的纯度的加和(子集占比*子集的经验熵)。

2.度量划分前后的纯度变化用子集的纯度之和与划分前的数据集D的纯度进行比较。

特征选择的准则就是  度量样本集合不确定性以及纯度的方法。本质相同,定义不同而已。

首先介绍一下熵的概念以及理解:

熵:度量随机变量的不确定性。(纯度)

定义:假设随机变量x的可能取值有,

对于每一个可能的取值,其概率p()=,(i=1,2,....,n)

因此随机变量x的熵:

对于样本集合D来说,随机变量X是样本的类别,即,假设样本有k个类别,每个类别的概率是,其中表示类别k的样本个数,|D|表示样本总数

则对于样本集合D来说熵(经验熵)为:

信息增益(ID3算法)

定义:以某特征划分数据集前后的熵的差值

在熵的理解那部分提到了,熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。

划分前样本集合D的熵是一定的,entroy(前),

使用某个特征A划分数据集D,计算划分后的数据子集的熵entroy(后)

信息增益 = entroy(前) - entroy(后)

书中公式:

g(D,A) = H(D) - H(D|A)

做法:计算使用所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前节点的划分特征便是使信息增益最大的划分所使用的特征。

信息增益的理解:

对于待划分的数据集D,其entroy(前)是一定的,但是划分之后的熵entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此entroy(前)—entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D.

缺点:信息增益偏向取值较多的特征

原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较偏向取值较多的特征。

解决方法:信息增益比(C4.5算法)

信息增益比 = 惩罚参数 * 信息增益

书中公式:

注意:其中的,对于样本集合D,将当前特征A作为随机变量(取值是特征A的各个特征值),求得是经验熵。

(之前是把集合类别作为随机变量,现在把某个特征作为随机变量,按照此特征的特征取值对集合D进行划分,计算熵

信息增益比本质:是在信息增益的基础之上乘上一个惩罚参数,即:将特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。

惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)

缺点:信息增益比偏向取值较少的特征

原因:当特征取值较少时的值较少,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。

使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是先在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

基尼指数(CART算法----分类树)

定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率

注意:Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。

基尼指数(基尼不纯度) = 样本被选中的概率 * 样本被分错的概率

书中公式:

说明:

1.表示选中的样本属于k类别的概率,则这个样本被分错的概率是(1-

2.样本集合中有K个类别,一个随机选中的样本可以属于这K个类别中的任意一个,因而对类别就加和

3.当为二分类是,Gini(p) = 2p(1-p)

样本集合D的Gini指数:假设集合中有K个类别,则:

基于特征A划分样本集合D之后的基尼指数:

需要说明的是CART是一个二叉树,也就是当使用某个特征划分样本集合,只有俩个集合:1.等于给定的特征值的样本集合,2不等于给定的特征值的样本集合

实际上是对拥有多个取值的特征的二值处理。

举个例子:

假设现在有特征”学历“,此特征有三个特征取值:”本科“,”硕士“,”博士“,

当使用”学历“这个特征对样本集合D进行划分时,划分值分别有三个,因而有三种划分的可能集合,划分后的子集如下:

1. 划分点:”本科“,划分后的子集合:{本科},{硕士,博士}

2. 划分点:”硕士“,划分后的子集合:{硕士},{本科, 博士}

3. 划分点:”博士“,划分后的子集合:{博士},{本科,硕士}

对于上述的每一种划分,都可以计算基于 划分特征 = 某个特征值 将样本集合D划分为俩个子集的纯度:
  

因而对于一个具有多个取值(超过2个)的特征,需要计算以每一个取值作为划分点,对样本D划分之后子集的纯度Gini(D,Ai),(其中Ai表示特征A的可能取值)

然后从所有的可能划分的Gini(D,Ai)中找出Gini指数最小的划分,这个划分的划分点,便是使用特征A对样本集合D进行划分的最佳划分点。

补充点:CART的全称是分类与回归树,既可以用于分类问题,也可以用于回归问题

回归树中,使用平方误差最小化准则来选择特征并进行划分,每一个叶子节点给出的预测值,是划分到该叶子节点的所有样本目标值的均值,这样只是在给定划分的情况下最小化了平方误差,要确定最优化分,还需要遍历所有属性,以及其所有的取值来分别尝试划分并计算在此种划分情况下的最小平方误差,选取最小的作为此次划分的依据。由于Gini指数最小化准则来选择特征并进行划分:

Gini指数表示集合的不确定性,或者不纯度,基尼指数大,集合不确定性越高,不纯度也越大。这一点和熵类似。另一种理解基尼指数的思路是。基尼指数是为了最小化误分类的概率。

总结

决策树算法主要包括三个部分:特征选择、树的生成、树的剪枝。常用算法有ID3、C4.5、CART。

1、 特征选择。特征选择的目的是选取能够对训练集分类的特征。特征选择的关键准则是:信息增益、信息增益比、Gini指数。

2、决策树的生成。通常是利用信息增益最大、信息增益比最大、Gini指数最小作为特征选择的准则。从根节点开始、递归的生成决策树。相当于是不断选取局部最优特征,或将训练集分割为基本能够正确分类的子集。

3、决策树的剪枝。决策树的剪枝是为了防止树的过拟合,增强其泛化能力。包括预剪纸和后剪纸

问题:决策树中连续值和缺失值特征是如何处理的?

答:决策树中,对于连续属性,假设有n个样本,那么首先按照取值从小到大进行排序,取每俩个值的中值作为候选的划分点进行划分。n个样本,对应有n-1个区间,也就是n-1个候选划分点。尝试所有划分点之后,分别计算信息增益,选取信息增益最大的划分点即。对于属性有缺失值的情况,划分过程中计算属性信息增益的时候,只使用属性没有缺失值的样本进行信息增益的计算。确定好分类之后,对于在该属性值有缺失的样本,将被归入所有的分支节点。

决策树--信息增益、信息增益比、Geni指数的理解相关推荐

  1. 决策树--信息增益,信息增益比,Geni指数的理解

    20210528 https://blog.csdn.net/qq_39408570/article/details/89764177 信息增益和基尼指数不是等价的 大多数时候它们的区别很小 信息增益 ...

  2. 决策树--信息增益,信息增益比,Geni指数

    决策树 是表示基于特征对实例进行分类的树形结构 从给定的训练数据集中,依据特征选择的准则,递归的选择最优划分特征,并根据此特征将训练数据进行分割,使得各子数据集有一个最好的分类的过程. 决策树算法3要 ...

  3. 决策树和信息增益的理解

    决策树 通俗来说,决策树分类的思想类似于找对象.现想象一个女孩的母亲要给这个女孩介绍男朋友,于是有了下面的对话: 女儿:多大年纪了? 母亲:26. 女儿:长的帅不帅? 母亲:挺帅的. 女儿:收入高不? ...

  4. 决策树信息增益|信息增益比率|基尼指数实例

    今天以周志华老师的西瓜为例,复盘一下三种决策树算法. 文章目录 信息增益(ID3算法) 信息增益比率(C4.5算法) 基尼指数(CART算法) 数据: 信息增益(ID3算法) 信息熵表示信息的混乱程度 ...

  5. 决策树①——信息熵信息增益基尼系数

    本文主要是通过大白话,解释何为 信息,信息熵,信息增益,信息增益率,基尼系数 一.信息(information) 能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实,那不叫信息. 比如数据分 ...

  6. 【机器学习 - 决策树】信息增益

    文章目录 一.理解信息增益 二.信息增益在决策树算法中的应用 参考链接 一.理解信息增益 几个概念: 熵:表示随机变量的不确定性. 条件熵:在一个条件下,随机变量的不确定性. 信息增益:熵 - 条件熵 ...

  7. 决策树 信息熵 条件熵 基尼系数 信息增益 信息增益率 CART 随机森林

    决策树: 决策树是一种树形结构,树内部每个节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶子节点代表一个分类类别.通过训练数据构建决策树,可以对未知数据进行分类, 上面的决策树深度depth ...

  8. 简单python代码实现决策树计算信息增益_python手动计算信息增益

    python手动计算信息增益 2019年5月23日 17:49 by wst 算法实践 概念阐述 对于决策树, 以前看了很多遍, 但是总感觉摸不着它. 里面有个很重要的概念: 信息增益. 今天就来手动 ...

  9. 第四章 决策树和ID3 python3.5.1代码理解

    一.部分概念: 决策树:为了对新事例进行分类. 决策树学习的目的:为了获得泛化能力强的决策树. 决策树包括根结点,内部结点,叶结点: 1)根结点:包涵样本全集. 2)内部结点:对应于一个测试属性. 3 ...

最新文章

  1. R语言使用integrate函数进行函数积分计算实战
  2. 仓库管理的5S如何在仓库中实施
  3. 为什么线程池里的方法会执行两次_面试官问你java都有哪些线程池,自己是否自定义过线程池...
  4. 安卓关于图片压缩的那些事儿,希望给每个安卓开发人员一些帮助
  5. 使用BufferedImage进行渐变色操作
  6. php mysql cpu100_解决mysql占用cpu资源100%的问题_MySQL
  7. 学习入门运营TikTok需要注意些什么?
  8. Motan:目录结构
  9. JS小技巧 ----- 将类数组 / 字符串转为数组的几种方式
  10. vivado2018.3添加IP库
  11. Luogu4491 [HAOI2018]染色 【容斥原理】【NTT】
  12. 快递电子面单接口:四通一达,百世,邮政,顺丰,德邦等快递电子面单接口免费接入
  13. 一线互联网互联网架构师自述:GitHub标星10w+,2021最新Android笔经
  14. 《科比传》留下深刻印象的文字
  15. hiho 1613 - 墨水滴 - bfs+优先队列 *
  16. 第十一讲 项目3 买五赠一 买二十赠五 优惠计算
  17. LINUX下设置postgresql的登录密码
  18. K近邻算法应用——价格预测
  19. CSS绘制三角形原理及应用
  20. 哲学博士创立,创投教父投资,这家公司要冲击美股最大IPO了

热门文章

  1. 马云:每一层管理者,只需要3招| 云队友
  2. [转]《数学之美》 阅读笔记
  3. 信息安全专业要计算机好吗,哪些单位需要计算机信息安全专业的
  4. vmware虚拟机重装后本机没虚拟网卡解决方案及虚拟机的三种网络连接方式详解
  5. Fresco+Recycleview+OKhttp+Retrofit
  6. python opencv 人体/人脸识别 简易demo
  7. 将AIR-CAP2702I-H-K9升级成胖AP
  8. 更新网卡后蓝牙无法删除亦无法连接问题
  9. 前端工程师高手说说CSS学习中的瓶颈
  10. Cmake 配置 arm-oe-linux-gnueabi-gcc 交叉编译