本文主要介绍的主要内容如下:

  • 概念
  • ID3 决策树算法
  • C4.5 决策树算法
  • CART 决策树算法

1. 概念

1.1 信息熵

信息熵(Entropy),随机变量的不确定性,也称为“系统混乱程度”,它是度量样本集和纯度最常用的一种指标。假定当前样本集和

中第
类样本所占的比例为
,则
的信息熵定义为

1.2 条件信息熵

条件信息熵(Conditional Entrop),样本集和

在某个离散特征
的可能属性取值
对样本进行划分,其中
表示离散特征
个属性上的样本数量,所以条件信息熵为

1.3 信息增益

信息增益(Information Gain),一般而言,如果信息增益越大,则意味着使用特征

来进行划分后获得的“纯度提升”越大。所以我们可以依据信息增益来进行决策树的划分特征选择。

2. ID3 决策树算法

2.1 ID3 决策树算法流程

ID3 决策树算法就是以信息增益为准则来选择划分的特征。

下面举例说明 ID3 的计算过程,假设有如下数据集:

这个数据集的信息熵为:

计算数据集的条件信息熵:

其中

最终得到:

使用同样的流程方法,我们可以求得:

然后计算信息增益,得到:

从得到的结果来看,我们应当选择 appearance 特征来进行第一次的划分,此时数据集和

被划分成了三个新的数据集和,三个数据集合用同样的方式来进行划分。

2.2 ID3 决策树算法的优缺点

优点:

  • 具有较强的解释性
  • 可以用作分类和回归

缺点:

  • 容易过拟合
  • 容易陷入局部最优
  • 算法更加容易选择属性多的特征

3. C4.5 决策树算法

我们看到 ID3 算法更加容易选择属性多的特征,如果我们将之前的 ID 也作为一个特征,以这个特征来计算信息增益会达到最大值 0.94 ,那么决策树一开始就会将其划分成14个分支,每个分支仅有一个节点,很显然该决策树没有泛化能力。

所以出现了 C4.5 决策树算法,该算法不使用信息增益而是使用最大的增益率来选择最优划分的特征。

其中

4. CART 决策树算法和使用的是

CART 决策树算法和 C4.5 以及 ID3 决策树算法有所不同,它使用的是“基尼指数”来选择划分的特征。

反映的是从数据集
中随机抽取两个样本,其类别标记不一致的概率,因此
越小,说明数据集
的纯度越高。那么特征
的基尼指数定义为:

所以我们只要选择划分后基尼指数最小的那个特征作为最优划分特征即可。


微信公众号:PyMachine

cart算法_ID3、C4.5、CART决策树算法相关推荐

  1. ID3和C4.5分类决策树算法 - 数据挖掘算法(7)

    (2017-05-18 银河统计) 决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来判断其可行性的决策分析方法,是直观运用概率分析的一种图解法.由于这种决策分支画 ...

  2. 机器学习算法(3)之决策树算法

    前言:首先,在了解树模型之前,自然想到树模型和线性模型有什么区别呢?其中最重要的是,树形模型是一个一个特征进行处理,之前线性模型是所有特征给予权重相加得到一个新的值.决策树与逻辑回归的分类区别也在于此 ...

  3. 什么是CART算法?怎么对CART进行建树?怎么对CART进行减枝叶?CART Python实现代码

    什么是CART算法?怎么对CART进行建树?怎么对CART进行减枝叶?CART Python实现代码 一.什么是决策树? 二.什么是CART树 三.基尼指数 四.基尼指数在这里为什么Gini(D)系数 ...

  4. python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

    概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...

  5. 【机器学习入门】决策树算法(四):CART算法(Classification and Regression Tree)

    CART算法的简介: CART(Classification and Regression Tree)算法,即分类回归树算法,也是决策树构建的一种常用算法,CART的构建过程采用的是二分循环分割的方法 ...

  6. 决策树 基于python实现ID3,C4.5,CART算法

    实验目录 实验环境 简介 决策树(decision tree) 信息熵 信息增益(应用于ID3算法) 信息增益率(在C4.5算法中使用) 基尼指数(被用于CART算法) 实验准备 数据集 算法大体流程 ...

  7. cart算法_决策树学习笔记(三):CART算法,决策树总结

    点击上方"Python数据科学",选择"星标公众号" 关键时刻,第一时间送达! 作者:xiaoyu 介绍:一个半路转行的数据挖掘工程师 推荐导读:本篇为树模型系 ...

  8. 机器学习算法——决策树算法详细介绍,并使用sklearn实现案例预测,可视化决策树

    目录 一.决策树算法简介 二.决策树分类原理 1.熵 1.1 概念 1.2 案例 2.决策树的划分依据一:信息增益 2.1 概念 2.2 案例: 3.决策树的划分依据二:信息增益率 3.1 概念 3. ...

  9. CART算法对比理解

    来源:http://www.cnblogs.com/pinard/p/6053344.html 作者:刘建平Pinard 对于C4.5算法,我们也提到了它的不足,比如模型是用较为复杂的熵来度量,使用了 ...

最新文章

  1. poj3169(差分约束+SPFA)
  2. robotframework ie浏览器中click button不可用_RobotFramework自动化Selenium2Library库常用关键字...
  3. IDA Pro7.0使用技巧总结使用
  4. 计算机课堂教育叙事,《我与电脑交朋友》教学反思
  5. ubuntu各大学更新源(教育网速度都很快)
  6. Thinking in Java Reading Note(2.一切都是对象)
  7. vue前期项目搭建所需要安装的插件,idea操作
  8. php mktime 2037,phpmktime计算两时间之差_PHP教程
  9. 简单明了,彻底地理解Binder
  10. YTC, YTM, YTW
  11. 设计模式-行为型模式,状态模式(14)
  12. 887. 鸡蛋掉落(困难)-动态规划
  13. mysql 常用日期时间计算
  14. RabbitMQ高可用--Quorum Queue(仲裁队列)的用法
  15. 第2章 关系数据库(数据库系统概论)
  16. 数学建模竞赛常用软件培训2
  17. Uniapp 制作海报功能
  18. 四格漫画《MUXing》——他们在干什么
  19. 如何才能成功创业呢?
  20. 交换机和路由器的区别在哪里 一针见血通俗解答---土巴兔

热门文章

  1. UVA10679 I Love Strings!!【字符串匹配】
  2. UVA10213 How Many Pieces of Land【数学+大数】
  3. UVA10179 Irreducable Basic Fractions【欧拉函数+数论】
  4. CCF NOI1058 统计单词
  5. 扩展欧几里得算法与模乘逆元的程序
  6. 心算技巧 —— 大数的三次方根
  7. 稀疏编码(sparse code)与字典学习(dictionary learning)
  8. 二叉堆(binary heap)—— 优先队列的实现
  9. matplotlib 可视化 —— 定制 matplotlib
  10. 强悍的命令行 —— 磁盘空间的查看与磁盘空间的释放