决策树归纳是从类标记的训练元组学习决策树。决策树是一种类似于流程图的结构,其中,每个内部节点(非树叶节点)表示在一个属性上的测试,每个分枝代表一个测试输出,而每个树叶节点(或终节点)存放一个类标号。树的最顶层节点是根节点,一颗典型的决策树如下图所示:

1 决策树归纳

典型的算法有ID3 (迭代的二分器)、C4.5、 CART(分类与回归树),三种算法均采用贪心(即非回溯的)方法,其中决策树以自顶向下递归的分支方式构造。

基本决策树算法如下图所示:

给定训练集D,算法的计算复杂度为O(n×|D|×log(|D|)),其中n是描述D中元祖的属性个数,|D|是D中训练元组树。

2    属性选择度量

决策树算法之间的差别包括在创建树时如何选择属性和用于剪枝的机制。属性选择度量是一种选择分裂准则,将给定类标记的训练元组的数据划分D“最好”地分成个体类的启发式方法。具有最好度量得分的属性被选作给定元组的分类属性。

设数据划分D为类标记的元组的训练集。假定类标号属性具有m个不同值,定义m个不同的类Ci(i=1,2,…,m)。设Ci,D是D中Ci类的元组集合,|D|和|Ci,D|分别是D和CiD中元组个数。

(1)信息增益

ID3使用信息增益作为属性选择度量。设节点N代表或存放划分D的元组,选择具有最高信息增益的属性作为节点N的分裂属性。

假设现在按属性A划分D中的元组,其中属性A根据训练数据的观测具有V个不同的值{a1,a2,…,av}。如果A是离散值的,则这些值直接对应于A上测试的v个输出。可以用属性A将D划分为v个子集{D1,D2,…,Dv},其中Dj包含D中的元组,它们在A上具有值aj,此时为了得到准确的分类,还需要的信息量为:

假定属性A是连续值时,分裂点是A上的阈值。先将A的值按递增排序,每对相邻值的中点都看作是可能的分裂点。这样,给定A的v个值,则需要计算v-1个可能的分裂。

(2)增益率

ID3的后继C4.5使用信息增益率作为属性选择度量。分裂信息类似于Info(D),定义如下:

(3)Gini指标

Gini指标在CART中使用,Gini指标度量数据划分或训练元组集D的不纯度,定义为:

基尼指数考虑每个属性的二元划分。如果A的二元划分将D划分为D1和D2,则给定该划分,D的基尼指数为

对于每个属性,考虑每种可能的二元划分。对于离散值属性,选择该属性产生最小基尼指数的子集作为它的分裂子集。对于离散属性,其策略类似于信息增益。

对离散或连续属性A的二元划分导致的不纯度降低为

最大化不纯度降低(等价地,具有最小基尼指数)的属性为分裂属性。

3    树剪枝

在决策树创建时,由于数据中的噪声和离群点,许多分枝反映的是训练数据中的异常。剪枝方法处理这种过分拟合问题。常用的剪枝方法:先剪枝和后剪枝

分类算法——决策树(1)相关推荐

  1. 【机器学习】sclearn分类算法-决策树、随机森林

    分类算法-决策树.随机森林 1.决策树 1.1 认识决策树 1.2 信息论基础-银行贷款分析 1.3 决策树的生成 1.4 决策树的划分依据之一-信息增益 1.5 sklearn决策树API 1.6 ...

  2. sklearn分类算法-决策树、随机森林

    sklearn分类算法-决策树.随机森林 一.决策树 1.概念 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法 比如: ...

  3. 分类算法-决策树、随机森林

    分类算法-决策树.随机森林 决策树 1. 认识决策树 决策树模型呈树形结构.在分类问题中,表示基于特征对实例进行分类的过程,它可以认为是if-then规则的集合.在决策树的结构中,每一个实例都被一条路 ...

  4. 数据挖掘十大算法之分类算法(决策树模型)

    文章目录 1. 决策树的概念 2. 构建决策树 3. 决策树中的信息论原理 3.1 信息量 3.2 熵 3.3 分类集合信息量 3.4 信息增益 接上篇文章分类介绍及评价指标我们讨论了分类算法中,分类 ...

  5. Chapter 5 分类算法——决策树与随机森林

    决策树 认识决策树 决策树思想的来源非常朴素,程序设计中的条件分支结构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法. 信息熵:单位为比特. 信息和消除不确定性是相联系 ...

  6. 建模基础教学:分类算法 --- 决策树

    决策树理解案例 我们在买苹果的时候可以通过苹果的颜色.硬度来判断它的好坏,再决定是否买这个苹果.那么我们也许可以基于之前买苹果的经验做出这样一个分析: 某人不太会挑苹果,所以纯粹是随机写的几条数据,假 ...

  7. ML算法基础——分类算法-决策树、随机森林

    文章目录 1.决策树 1.1 认识决策树 1.2 信息论基础-银行贷款分析 1.2.1 信息论基础-信息熵 1.2.2 决策树的划分依据之一-信息增益 1.3 泰坦尼克号乘客生存分类 1.3.1 sk ...

  8. 机器学习-分类算法-决策树,随机森林10

    决策树: 决策树的思想来源非常朴素,程序设计中的条件分支机构就是if-then结构,最早的决策树就是利用这类结构分割数据的一种分类学习方法. 信息和消除不确定性是相联系的 信息增益:当得知一个特征后, ...

  9. 决策树分类python代码_分类算法-决策树 Decision Tree

    决策树(Decision Tree)是一个非参数的监督式学习方法,决策树又称为判定树,是运用于分类的一种树结构,其中的每个内部节点代表对某一属性的一次测试,每条边代表一个测试结果,叶节点代表某个类或类 ...

最新文章

  1. python怎么随机生成数据_Python-随机生成数据
  2. vs调试c语言检查内存泄露,VisualStudio中检查内存泄露方法
  3. mysql消息队列的原理_PHP和MySQL实现消息队列
  4. Javascript 获取url参数,hash值 ,cookie
  5. java对时间使用des加密_Java如何使用DES加密对象?
  6. 暑期训练日志----2018.8.3
  7. vue搭建后可以改下全局配置
  8. Node Introduce
  9. java 全角半角符号转换_java 字符串全角半角转换
  10. 职业程序员的知识体系
  11. 【细胞分割】基于matlab GUI形态学算法红细胞计数【含Matlab源码 638期】
  12. 2)Oracle 公司的产品线介绍
  13. ncnn paramdictmodelbin
  14. 厦门大学计算机专业录取分数线2019,厦门大学2019年各省录取分数线及各专业录取分数线...
  15. #10019. 「一本通 1.3 例 2」生日蛋糕
  16. matlab中taylor公式源代码,matlab实现两步taylor-galerkin算法
  17. 用R画出染色体修饰图谱--超详细版本
  18. 如何把pdf转换成excel
  19. matlab函数之reshape()
  20. 配置好的HTTPS服务,无法访问

热门文章

  1. 孙正义举债豪购ARM的3个理由:潜伏物联网时代
  2. [C++] 用Xcode来写C++程序[3] Constants
  3. 读《大学之路》有感①
  4. NodeJS+Express+mySQL服务端开发详解
  5. 插入的数据不能时时查询到_数据库原理笔记
  6. @javax.inject.Inject,新的注入依赖规范
  7. powerdesigner 设置唯一约束
  8. vue项目统一响应_vue中使用$set实现深入响应式原理
  9. python中函数定义可以不包括什么_Python 中,函数定义可以不包括以下_______。
  10. php sqlsrv 下载,php_sqlsrv_ts.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...