ID3算法(Iterative Dichotomiser 3 迭代二叉树3代),是一个由Ross Quinlan发明的用于决策树的算法;简单理论是越是小型的决策树越优于大的决策树。
算法归纳:
1、使用所有没有使用的属性并计算与之相关的样本熵值;
2、选取其中熵值最小的属性
3、生成包含该属性的节点
4、使用新的分支表继续前面步骤
 
ID3算法以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类;所以归根结底,是为了从一堆数据中生成决策树而采取的一种归纳方式;
 
具体介绍:
1、信息熵:熵的概念主要指信息的混乱程度,变量的不确定性越大,熵的值越大;
或者这样理解:假如事件A的全概率划分是(A1, A2, A3, … , An),每部分发生的概率是(P1, P2, P3, … , Pn),那么信息熵计算公式可如下表示
       Info(A) = Entropy(p1, p2, … , pn) = -p1 * log2(p1) - p2 * log2(p2)  - … - pn * log2(pn);
 
2、信息增益:信息增益指划分前后熵的变化;
或者这样理解:在某个案例中,类S的属性值A的信息增益 = 类的信息熵Info(S) - 该属性的信息熵Info(A);
 
3、一个案例中总会有一个类导向,也可以理解为结果,而产生结果统计来的信息可能会有多个相关属性,当我们使用一次信息增益计算,并在这多个属性的信息增益中得到了某个属性X的信息增益为最大值时,实际上也是选择了决策树中从根节点出发的第一层分支的依据;找到第一个分类节点后,如果这时X有三个分支x1,x2,x3,我们下一次的计算,其实就是把原表,根据X的三种情况分为了三张表,再重复计算信息增益,就可以得到整个决策树;
 
示例:http://www.cnblogs.com/zhangchaoyang/articles/2196631.html
 
优缺点:
优点:理论清晰,方法简单;
缺点:支队比较小的数据集有效,且对噪声比较敏感,当训练数据集加大时,决策树可能会随之改变;
 
 
我的理解:
整个计算其实并不复杂,有一点需要注意的是在一算整体表的某个属性A的熵时,如果A有三个取值,a1、a2、a3;A的熵其实 等于 a1出现的概率 乘 a1为独立表时该类的熵 加上 同理a2 加上 同理a3 这个计算的才是A的熵
 
 
相关:
奥卡姆剃刀:“切勿浪费较多东西,去做’用较少的东西,同样可以做好的事情’。”,即,如果同一个问题有许多种理论,每一种都能够做出同样准确的预言,那么应该挑选其中使用的嘉定最少的那一个。尽管越复杂的方法通常能做出越好的语言,但是在不考虑语言能力的情况下,前提假设越少越好。所罗门诺夫的归纳推理理论是奥卡姆剃刀的数学公式化:在所有能够完美描述已有观测的可计算理论中,较短的可计算理论在孤寂下一次观测结果的概率时具有较大权重。
 
课外:ID3也是一种metadata容器的简称,多用于MP3格式的音频文件中,他可以将相关的曲名、演唱者、转机、音轨数等信息存储在MP3文件中。ID3一般位于一个mp3文件的开头或末尾的若干字节内,附加了关于该mp3的歌手,标题,专辑名称,年代,风格等信息,该信息被称为ID3信息,ID3信息又分为两个版本。v1版的ID3在mp3文件的末尾128字节,以TAG三个字符开头,后面跟上个区信息。v2版一般位于mp3开头,可以存储歌词,该专辑的图片等大容量的信息;

决策树 -- ID3算法小结的更多相关文章

  1. 02-21 决策树ID3算法

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

  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. 机器学习之决策树(ID3)算法与Python实现

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

  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算法的java实现

    决策树的分类过程和人的决策过程比较相似,就是先挑“权重”最大的那个考虑,然后再往下细分.比如你去看医生,症状是流鼻涕,咳嗽等,那么医生就会根据你的流鼻涕这个权重最大的症状先认为你是感冒,接着再根据你咳 ...

  9. 决策树ID3算法

    决策树 (Decision Tree)是在已知各种情况发生概率的基础上,通过构成 决策树 来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法 ...

随机推荐

  1. 1_UILabel

    // // ViewController.swift // 1_UILabel // // Created by Larry on 2016/12/7. // Copyright © 2016年 nf ...

  2. DateTime.Compare用法

    DateTime.Compare(t1,t2)比较两个日期大小,排前面的小,排在后面的大,比如:2011-2-1就小于2012-3-2返回值小于零:  t1 小于 t2. 返回值等于零 : t1 等于 ...

  3. Powershell获取并导出指定日期EventLog

    $date = Get-Date 28/07/16 Get-EventLog -After $date "Application"|Export-Csv c:\ming.csv

  4. UpdatePanel 中 导出Excel按钮

    UpdatePanel 中 导出Excel按钮 要加 Triggers </ContentTemplate> <Triggers> <asp:PostBackTrigge ...

  5. 关于representation的理解

    目前见过的定义的比较确切的是Yoshua Bengio在ACL2010的一篇paper中关于word representation的定义: " A word Representation i ...

  6. 深入Java虚拟机

    第一章:Java体系结构介绍 1.Java为什么重要?       Java是为网络而设计的,而Java这种适合网络环境的能力又是由其体系结构决定的,可以保证安全健壮和平台无关的程序通过网络传播. 2 ...

  7. javascript json转为 go struct 小工具代码

    /** * Created by cdpmac on 15/10/20. */ var topname="Ap"; var jdata={ "item": { ...

  8. JAVA面向对象初步知识总结:封装、继承、多态

    1.封装 把数据和方法包装进类中,以及具体实现的隐藏,常共同被称作是是封装.其结果是一个同时带有特征和行为的数据类型.所谓具体实现的隐藏是通过访问权限控制实现的.JAVA 子类重写继承的方法时,不可以 ...

  9. axure设置变量值

    以登录框为例设置axure变量值 1.打开axure,打开新页面命名为login,拖入一个矩形背景,命名:登录背景图 2.拖入标签控件和输入框控件分别命名为用户名:.userName.密码:.pass ...

  10. 运费模版源码(.net)

    之前写了一篇关于nop商城系统中运费模版模块相关的随笔,说要把源码贴出来,一直没有贴,现在我把源码贴出来,有任何问题欢迎留言讨论. 源码是在nop上写的,所以文件夹结构和nop的文件夹对应,源码包含的 ...