1.决策树的作用

  主要用于解决分类问题的一种算法

2.建立决策树的3中常用算法

  1).ID3---》信息增益

  2).c4.5--> 信息增益率

  4).CART Gini系数

3.提出问题:

  ID3算法中,选择根节点时为什么要使得信息增益最大的特征呢?

***************************后续内容均为更好的理解3中所提出的的问题展开****************************

4.ID3算法的理解

  如何更好的理解决策树的建立原理呢:我想从下图的层次去理解决策树的原理

  首先用倒序的方式来将问题细化如下图:

  

  1).什么是自信息?

   香农(shannon)给出的定义:信息是事务运动状态后存在方式不确定性的描述

   对上述定义的理解:

   引入图片(左图来源:西安电子科技大学老师信号论课程讲义图)

   

   左图:

     第一列:x1-x8表示的是发送端(信源)即将发送的信息的内容;

     第二列:用3位的二进制数所唯一表征上述x1-x8

     第三列:发送端随机发送任意一个信息内容的概率

   通过右图我们可以发现,在信号传递过程中所体现出来的不确定性我们是可以通过概率的方式去量化表征的;

   这样我们就可以预先假设不确定性和概率之前存在着一种量化的关系,可以做出如下的定义:在如下图所示的集合中,每一个事件x发生的不确定性可以定义为   

   下面我们分析一下信息的不确定性的特点:

   a.确定事件的不确定性为0,即f(1) = 0

   b.是单调减函数,即随着p(xi)的增大,f的值减小

   c.可加性,即a发生的不确定性为i,b发生的不确定性为j 那么a和b同时发生的不确定性为i + j

   通过上述的假设的不确定性与概率之间的量化关系,以及信号传递(或者说事件发生)过程中不确定性的特点,发现此种形式的函数满足如上假设以及特点

   由此便有了信息的数学表达式为:

   表达式1:事件xi的自信息-------------------------->

   为什么称作自信息,暂且理解为只考虑自身的不确定性,后边的内容了解之后,大家就知道为甚这么叫了。

   表达式2:事件xi的条件自信息------------------->

   含义:事件yi发生的情况下,事件xi发生的不确定性的大小

   表达式3:事件x的非平均互信息:------------->

   含义:观测某一事件后所得到的关于信源事件不确定性的大小;

   分步骤理解:

    第一步:y事件发生前x事件发生的可能性为I(x)

    第二步:y事件发生后x事件发生的可能性为I(x|y)

    第三步:两者的差值即就是观测y事件发生后所得到的关于x事件不确定性的大小

   

   通过上图,我们可以更直观得到自信息,条件自信息,非平均互信息三者之间的关系;

  ******************************************************************************************

  2).什么是信息熵?

   在理解什么是信息的过程中,我们引入的都是单一事件,表征的均为单一事件的不确定性,那如何表征x1-x8这个集合的不确定性呢?这便引入了信息熵,来度量集合的平均不确定性,表达式如下:

   

   如何理解熵的与信息之间的关系:信息用来表征单一事件发生的不确定性,而熵是表征一个事件集合发射的平均不确定性,此处的平均实为加权平均

   下面是几种熵的表达式:

   表达式1:条件平均子信息(注意此时的x是一个集合)

   

   表达式2:条件熵

   

   表达式3:平均互信息

   定义1:特定事件y属于Y w(y)>0出现时所给出的关于集合{X,p(x)}中格式件的平均互信息的表达式:

   

   含义:观测某一事件后所得到的信源事件整体平均不确定性的大小

   定义2:集合{XY,p(xy)}中随机变量I(x;y)的数学期望:

   

   含义:观测集合整体后所得到的信源事件整体平均不确定性的大小

   关系如下图:

   

  我们发现:

  下面给出上述关系的证明:(此时就是信息增益的关系时)

  

5.结论:

  下面解决我们最初提出的问题即:ID3算法中,选择根节点时为什么要使得信息增益最大的特征呢?

  首先明确我们在决策树中所提出的信息增益即就是平均互信息I(X;Y),含义如上文中蓝色字体所示,也可以理解为是Y事件集发生后,使得x发生的不确定性的减少程度

  为什么要信息增益大呢?如下图所示当信息增益越大时,时件y发生后时间x的不确定性(即条件互信息)越来越小,这个正是我们所想要的;

  

   

  

   

   

   

   

   

   

  

   

   

  

   

  

  

  

3.决策树ID3算法原理的更多相关文章

  1. 机器学习之决策树(ID3)算法与Python实现

    机器学习之决策树(ID3)算法与Python实现 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每 ...

  2. 数据挖掘之决策树ID3算法(C#实现)

    决策树是一种非常经典的分类器,它的作用原理有点类似于我们玩的猜谜游戏.比如猜一个动物: 问:这个动物是陆生动物吗? 答:是的. 问:这个动物有鳃吗? 答:没有. 这样的两个问题顺序就有些颠倒,因为一般 ...

  3. 决策树ID3算法[分类算法]

    ID3分类算法的编码实现 <?php /* *决策树ID3算法(分类算法的实现) */ /* *求信息增益Grain(S1,S2) */ //-------------------------- ...

  4. 决策树---ID3算法(介绍及Python实现)

    决策树---ID3算法   决策树: 以天气数据库的训练数据为例. Outlook Temperature Humidity Windy PlayGolf? sunny 85 85 FALSE no ...

  5. 02-21 决策树ID3算法

    目录 决策树ID3算法 一.决策树ID3算法学习目标 二.决策树引入 三.决策树ID3算法详解 3.1 if-else和决策树 3.2 信息增益 四.决策树ID3算法流程 4.1 输入 4.2 输出 ...

  6. 决策树ID3算法的java实现(基本试用所有的ID3)

    已知:流感训练数据集,预定义两个类别: 求:用ID3算法建立流感的属性描述决策树 流感训练数据集 No. 头痛 肌肉痛 体温 患流感 1 是(1) 是(1) 正常(0) 否(0) 2 是(1) 是(1 ...

  7. 【Machine Learning in Action --3】决策树ID3算法

    1.简单概念描述 决策树的类型有很多,有CART.ID3和C4.5等,其中CART是基于基尼不纯度(Gini)的,这里不做详解,而ID3和C4.5都是基于信息熵的,它们两个得到的结果都是一样的,本次定 ...

  8. 决策树--ID3 算法(一)

    Contents      1. 决策树的基本认识      2. ID3算法介绍      3. 信息熵与信息增益      4. ID3算法的C++实现 1. 决策树的基本认识    决策树是一种 ...

  9. 决策树ID3算法的java实现(基本适用所有的ID3)

    已知:流感训练数据集,预定义两个类别: 求:用ID3算法建立流感的属性描述决策树 流感训练数据集 No. 头痛 肌肉痛 体温 患流感 1 是(1) 是(1) 正常(0) 否(0) 2 是(1) 是(1 ...

随机推荐

  1. Markedown换行

    1.换行 1⃣️行尾先加两个空格符后再按回车键,显示内容就会换行 2⃣️行尾连按两次回车键,显示内容就会换行 3⃣️举例: 第一行内容<br/>第二行内容 第一行内容<br>第 ...

  2. bfs(太空电梯)

    http://oj.jxust.edu.cn/contest/problem?id=1563&pid=4 题目描述 公元9012年,Q博士发明了一部太空电梯,与一般电梯不同,太空电梯不能直接到 ...

  3. python_0基础开始_day13

    第十三节 一,匿名函数 匿名函数 == 一行函数 lambda == def == 关键字 函数体中存放的是代码 生成器体中存放的也是代码 就是yield导致函数和生成器的结果不统一 lambda x ...

  4. linux 下如何将网页版应用生成桌面图标

    使用linux mint已经两年了,很多国民应用,都没有Linux版,但是这些应用都有网页版,今天就说下最简单的将网页应用变成桌面应用,无需配置,安装任何插件.以微信为例; 首先,在谷歌浏览器打开网页 ...

  5. leecode刷题(29)-- 二叉树的中序遍历

    leecode刷题(29)-- 二叉树的中序遍历 二叉树的中序遍历 给定一个二叉树,返回它的中序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,3,2] 思路 跟 ...

  6. C++ 多态、虚函数(virtual 关键字)、静态联编、动态联编

    函数重写:(在子类中重写父类中的函数) 父类中被重写的函数  依然会继承  给子类. 子类中重写的函数将覆盖父类中的函数. 通过作用域分辨符  ::  可以访问到父类中的函数. 例如: #includ ...

  7. 北大 ACM highways问题研究(最小生成树)

    #include<stdlib.h> #include<stdio.h> #include<queue> struct vertex//代表一个村庄 { int m ...

  8. C数据结构排序算法——希尔排序法用法总结(转http://www.cnblogs.com/skywang12345/p/3597597.html)

    希尔排序介绍 希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进.该方法又称缩小增量排序,因DL.Shell于1959年提出而得名. 希尔排序实质上是一种分组插入方法.它 ...

  9. L2Dwidget.js L2D网页动画人物添加

    hexo 添加live2d看板动画 https://www.jianshu.com/p/3a6342e16e57 首先贴出官网代码 官网地址配置:https://www.npmjs.com/packa ...

  10. IAP技术原理

    目录 IAP技术原理 更新记录 IAP与ISP的概念及原理 ISP简介 ISP原理 IAP简介 IAP原理 IAP优势 IAP的设计 1.程序启动流程 2.中断向量表的重定位 3.IAP跳转APP函数 ...