1. 决策树特点:

  1)优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。

  2)缺点:可能会产生过度匹配问题。

  3)适用数据类型:数值型和标称型。

2. 一般流程:

  1)收集数据:可以使用任何方法;

  2)准备数据:构造树算法只适用于标称型数据,因此数值型数据必须离散化;

  3)分析数据:可以使用任何方法,构造树完成后,我们应该坚持图形是否符合预期;

  4)训练算法:构造树的数据结构;

    a. 在划分数据集之前之后信息发生的变化称为信息增益。

     熵定义为信息的期望值,可用于分类,计算公式:

      H = -Σ ni=1 p(xi)log2p(xi)

    b. 创建决策树原理:

      得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。

      第一次划分之后,数据将被向下传递到树分支的下一个节点,在这个节点上,我们再次划分数据。

 

  5)测试算法:使用经验树计算错误率;

  6)使用算法:此步骤可以适用于任何监督学习算法,而使用决策树可以更好地理解数据的内在含义。

3. 应用:

  预测隐形眼镜类型;

  

[机器学习实战] 决策树ID3算法的更多相关文章

  1. 机器学习实战 -- 决策树(ID3)

    机器学习实战 -- 决策树(ID3)   ID3是什么我也不知道,不急,知道他是干什么的就行   ID3是最经典最基础的一种决策树算法,他会将每一个特征都设为决策节点,有时候,一个数据集中,某些特征属 ...

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

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

  3. 《机器学习实战》ID3算法实现

    注释:之前从未接触过决策树,直接上手对着书看源码,有点难,确实有点难-- 本代码是基于ID3编写,之后的ID4.5和CART等还没学习到 一.决策树的原理 没有看网上原理,直接看源码懂得原理,下面是我 ...

  4. 02-21 决策树ID3算法

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

  5. 机器学习实战---决策树CART回归树实现

    机器学习实战---决策树CART简介及分类树实现 一:对比分类树 CART回归树和CART分类树的建立算法大部分是类似的,所以这里我们只讨论CART回归树和CART分类树的建立算法不同的地方.首先,我 ...

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

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

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

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

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

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

  9. Python四步实现决策树ID3算法,参考机器学习实战

    一.编写计算历史数据的经验熵函数 from math import log def calcShannonEnt(dataSet): numEntries = len(dataSet) labelCo ...

随机推荐

  1. 【树形dp】Computer

    Computer Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  2. Codeforces 804E The same permutation(构造)

    [题目链接] http://codeforces.com/contest/804/problem/E [题目大意] 给出一个1到n的排列,问每两个位置都进行一次交换最终排列不变是否可能, 如果可能输出 ...

  3. Erlang学习记录(二)——基本数据类型

    Erlang可以说和我以前接触过的语言都大不相同,这个从它的类型定义就可以看出来...反正学起来觉得既不熟悉,也不亲切,我估计在用Erlang写应用的时候,整个编程思路都要变一下了.不过存在即是合理的 ...

  4. 关于applicationContext.xml cannot be opened because it does not exist的解决

    初学Spring在用Resource rs=new ClassPathResource("applicationContext.xml");时老是遇到这个错误.后来发现用 Appl ...

  5. 邮件发送过去24小时的自增长事件(MSSQL)

    此脚本需要启用DBMail以支持邮件的发送.可设为每日运行的JOB以追踪自增长事件,以便做出适当的调整. -- Email the Auto-growth events that have occur ...

  6. Android学习进阶路线导航线路(Android源码分享)

                                                                                                       转 ...

  7. mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  8. 图灵机器人聊天api

    图灵机器人,功能非常强大,可用于聊天.查询等多个领域 图灵机器人官网:http://www.tuling123.com api地址:http://www.tuling123.com/openapi/a ...

  9. ylbtech-LanguageSamples-Hello World

    ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Hello World 1.A,示例(Sample) 返回顶部 “Hello World ...

  10. IP地址网段规划