文章目录

  • 一、ID3算法
  • 二、CART算法

一、ID3算法

信息熵:加入当前样本集D中第K类样本所占的比例为Pk(k=1,2…|K|),K为类别的总数(对于二元分类来说,K=2),则样本集的信息熵为:

Ent(D)的值越小,则D的纯度越高。

信息增益:是由两个熵相减得来的,是由经过特征分裂后的熵减去分裂前结点的熵。
假定离散属性a有V个可能的取值{a1,a2,…av},如果使用特征a来对数据集D进行划分,则会产生V个分支结点,其中第v个结点包含了数据集D中所有在特征a上取值为av的样本总数,记为Dv。
因此可以根据上面信息熵的公式计算出信息增益熵,再考虑到不同的分支结点所包含的样本数量不同,给分支节点赋予权重,即样本数越多的分支节点的影响越大,因此,能够计算出特征a对样本集D进行划分所获得的“信息增益”:

信息增益越大,表示使用特征a对数据集划分所获得的“纯度提升”越大。
信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性。

优点
1.假设空间包含所有的决策树,搜索空间完整。
2.健壮性好,不受噪声影响。
3.可以训练缺少属性值的实例

缺点
1.ID3只考虑分类型的特征,没有考虑连续特征
2.ID3算法对于缺失值没有进行考虑。
3.没有考虑过拟合
4.ID3 仅仅适用于二分类问题。ID3 仅仅能够处理离散属性。
划分过程会由于子集规模过小而造成统计特征不充分而停止。

ID3算法过程

创建Root结点
如果Example都为正,那么返回label=正的单节点数Root
如果Example都为副,那么返回label=副的单节点数Root
如果Attribute为空,那么返回Root,label=Example中最普遍的Target_attribute的值。
否则A←Atrribute中分类Eaxmples能力最好的属性(*)Root的决策属性←A对于A的每个可能值Vi在Root下加一个新的分支对应测试A=Vi令Examplevi为Examples满足A属性值为Vi的子集如果Example为空在新分支下,加一个叶子节点,结点label=example中最普遍的Target_attribute值。否则在新分支下,加一个ID3的子树(包含所有满足的样例,所有标签,但是特征数-1)。结束
返回Root




纹理的信息增益最大,划分为属性,推出:

重复上面步骤,对上面第一个分支点(清晰)进行划分。

二、CART算法

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

Gini指数
表示集合的不确定性,或者是不纯度。基尼指数越大,集合不确定性越高,不纯度也越大。
分类问题中,假设有K个类,样本点属于第k类的概率为Pk,则概率分布的基尼指数定义为:

Pk表示选中的样本属于k类别的概率,则这个样本被分错的概率为(1-Pk)。
对于给定样本D,基尼指数为:

Ck是D中属于第k类的样本自己,k是类的个数。
在特征A的条件下,集合D的基尼指数为:

基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示经A=a分割后集合D的不确定性。

Gini 指数 vs 熵
1.Gini 指数的计算不需要对数运算,更加高效
2.Gini 指数更偏向于连续属性,熵更偏向于离散属性。

决策树算法介绍(ID3算法和CART算法)相关推荐

  1. 通过实例理解决策树算法(ID3,C4.5,Cart算法)

    (一)实例:使用ID3算法给出"好苹果"的决策树 (二)决策树的工作原理 我们在做决策树的时候,会经历两个阶段:构造和剪枝. 构造原理--构造的过程就是选择什么属性作为节点的过程, ...

  2. 决策树决策算法ID3算法、改进算法C4.5算法和CART算法代码实现

    决策树决策算法之ID3算法 ID3算法 在决策树各个节点上应用信息增益准则选择特征,每一次都选择是的信息增益最大的特征进行分裂,递归的构建决策树 具体计算可以参考 决策常用算法数学计算过程 ID3代码 ...

  3. c4.5决策树算法 c语言,决策树(三):C4.5算法和CART算法

    ID3选择属性的依据是信息增益: ![Information Gain][equtation] [equtation]: http://latex.codecogs.com/svg.latex?g_r ...

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

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

  5. 加权无向图与最小生成树(Prim算法和Kruskal算法)

    目录 0 引入 1 图的最小生成树定义及相关约定 2 最小生成树原理 2.1 性质 2.2 切分定理 3 贪心思想 4 Prim算法 4.1 算法步骤 4.2 API设计 4.3 Java代码演示 5 ...

  6. 决策树算法和CART决策树算法详细介绍及其原理详解

    相关文章 K近邻算法和KD树详细介绍及其原理详解 朴素贝叶斯算法和拉普拉斯平滑详细介绍及其原理详解 决策树算法和CART决策树算法详细介绍及其原理详解 线性回归算法和逻辑斯谛回归算法详细介绍及其原理详 ...

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

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

  8. 【机器学习】通过ID3,C4.5,CART算法构建决策树

    决策树 (一).决策树的简介 (二).构造决策树的三种构造方法 1.基于信息增益生成决策树(ID3算法) 2.基于信息增益率生成决策树(C4.5算法) 3.基于基尼指数生成决策树(CART算法) 总结 ...

  9. 浅谈迪杰斯特拉(Dijkstra)算法和A*算法原理及实现

    写在前面 最近我在学习一门名叫<智能自主机器人及系统>的课程,虽然跟过去所学的<机器人学>在部分内容上有所重复,但该课程的应用性更强.对于不同的机器人,如差速轮式车.四轮车.四 ...

最新文章

  1. tp5实现Redis的简单使用
  2. 设计模式之迭代器模式(Iterator)摘录
  3. Nginx支持CGI
  4. 什么是数据库负载均衡
  5. 不同项目之间的控件共享
  6. dll动态库调用约定
  7. pppoe服务器虚拟机,Hyper-V 批量建立虚拟机自动改IP并配置PPPOE拨号
  8. NYOJ11 - 奇偶数分离
  9. 硅谷女孩火了,更该让他们开始学编程
  10. 深度——强化学习、深度森林
  11. 雷达相关书籍学习顺序推荐
  12. 远程访问及控制工具SSH
  13. 计算机变量与变量地址,数据缓冲区与变量的地址(更新1)
  14. 3Dtouch开发内容
  15. proc report过程步
  16. ubuntu 中文版 man
  17. Cause: org.postgresql.util.PSQLException: 错误: 对于可变字符类型来说,值太长了(255)
  18. 关于云计算存储虚拟化技术三个层次上的实现
  19. 这是一个基于Threejs的商品VR展示系统的 VR模型展示Demo
  20. (16)业务数据导入HDFS

热门文章

  1. IE浏览器插件注册表位置
  2. 构建Vue前端组件库
  3. 海洋cms新手入门安装配置教程
  4. Linux服务器的登录与使用
  5. java中常见的英语单词
  6. SPSS学习笔记3/2
  7. 大数据之统计学基础(一) -- 描述统计
  8. 如何在 JavaScript 中格式化日期?
  9. java wav转amr_AMR和WAV互相转换
  10. 看MapleSim符号如何一步解决并联机构逆运动学问题