主要内容

(1)ID3算法简介

(2)ID3算法节点分裂规则

(3)ID3算法实例

(4)剪枝

-------------------------------------------------------------------------------------------------------------------------

一、简介

1、信息熵Entropy

其中为第i个类别的概率,S是样例集合

信息熵越大,样本越混乱;信息熵越小,样本越纯净。

2、期望信息

设特征A具有v个不同的类别,其样本个数分别记为

E(A)特征A的期望信息,为特征A的第j个类别的数量占特征A所有类别的概率,为特征A下第j个类别中占样例集合S不同类别的概率

3、信息增益

为特征A的信息增益

信息熵越小,信息增益越大,样本越纯净

选择信息增益最大的特征作为分裂标准

二、实例

1、样本(特征必须离散变量,支持多特征、多分类)

1024个样本,4个特征,2个分类

计数 年龄 收入 学生 信誉 是否购买
64
64
128
60
64
64
64
128
64
132
64
32
32
64

2、计算信息熵

3、计算特征A的信息熵

假设以年龄为例:

分为青年:384/0.375(样本/概率)、中年:256/0.25(样本/概率)、老年:384/0.375(样本/概率)

以年龄为特征的熵为:

青年:128/256(买/不买),概率为1/3和2/3(买/不买)

中年:256/0(买/不买),概率为1和0(买/不买)

老年:256/128(买/不买),概率为2/3和1/3(买/不买)

故得到以年龄为特征的熵(平均信息期望/条件熵)为

年龄特征的信息增益为:

同理可得

收入:

学生:

信誉:

可以看出,‘年龄’的信息增益最大,因此选择‘年龄’作为节点来划分。

按此方法,直至叶节点为’纯‘的结束。

三、剪枝

树的剪枝包括预剪枝和后剪枝,通过提前停止树的构造进行剪枝的方法称为预剪枝,后剪枝是首先构造完整的决策树,然后把置信度不够节点子树替代为叶子节点的过程。

预剪枝判断停止树的生长可以归纳为以下几种:

1、树的高度限制:设定树的高度最大值,当达到限定值时,停止树的生长;

2、训练样本限制:对一个拥有较少训练样本的节点进行分裂时容易出现过拟合现象,因此设定样本量阀值,当样本量少于阀值时停止生长;

3、系统性能增益:当属性的信息增益小于某个指定的阀值时停止增长。

相对而言预剪枝比较简单,在实际的运用中运用最广的还是后剪枝。

后剪枝算法主要有以下几类:

1、降低错误剪枝REP(Reduced Error Pruning);

2、悲观错误剪枝PER(Pessimistic Error Pruning);

3、基于错误剪枝EBP(Error-Based Pruning);

4、代价-复杂度剪枝CCP(Cost-Complexity Pruning);

5、最小错误剪枝MEP(Minimun Error Pruning)

以上算法的理论介绍详见:

http://wenku.baidu.com/view/415c3cc19ec3d5bbfd0a7464.html?re=view

四、总结

1、ID3算法的流程

(1)自上而下贪婪搜索

(2)遍历所有的属性,按照信息增益最大的属性进行分裂

(3)根据分裂属性划分样本

(4)重复上述流程,直至满足条件结束

2、ID3算法的特点

(1)上述过程可以看出,ID3算法倾向于选择属性值较多的属性,有些时候不能提供有价值的信息

(2)贪婪性以及奥姆剃刀原理(尽量用较少的东西做更多的事)

(3)不适用于连续变量

(4)只能用于分类

注:以上内容属个人理解,学艺不精,请各位大神多多指教

ID3算法(含实例)相关推荐

  1. 模拟退火算法详细讲解(含实例python代码)

    模拟退火算法详细讲解(含实例python代码) (一)模拟退火算法简介 (二)模拟退火算法原理 (三)退火过程中参数控制 (四)算法步骤 (五)实例分析 最近老师要求做模拟退火算法实验,看了很多博客之 ...

  2. 决策树学习算法 - ID3算法

    ID3算法概要: 熵值公式: 举例: 熵值公式用于判断一个样本集是否均匀分布,值的区间在[0,1]内,他有以下特点 1.分布越均匀,值越大 2.如果成单一分布,那么值为0 图例: 故可以推出通式(其中 ...

  3. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...

    前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...

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

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

  5. 【Machine Learning】决策树之ID3算法 (2)

    决策树之ID3算法 Content 1.ID3概念 2.信息熵 3.信息增益 Information Gain 4. ID3 bias 5. Python算法实现(待定) 一.ID3概念 ID3算法最 ...

  6. 【机器学习】深刻理解决策树-动手计算ID3算法

     一.决策树概述 决策树算法易于理解.可解释性强,是一个非常常见并且优秀的机器学习算法,可分类,也可回归.现在许多最优秀的集成模型,基础也是决策树.因此,决策树系列算法是机器学习绕不过的大山.需要进行 ...

  7. 【机器学习基础】数学推导+纯Python实现机器学习算法4:决策树之ID3算法

    Python机器学习算法实现 Author:louwill 作为机器学习中的一大类模型,树模型一直以来都颇受学界和业界的重视.目前无论是各大比赛各种大杀器的XGBoost.lightgbm还是像随机森 ...

  8. 决策树-熵计算-ID3算法(转)

    今天,我来讲解的是决策树.对于决策树来说,主要有两种算法:ID3算法和C4.5算法.C4.5算法是 对ID3算法的改进.今天主要先讲ID3算法,之后会讲C4.5算法和随机森林等. Contents   ...

  9. python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现

    在生活中我们经常会用到决策树算法,最简单的就是二叉树了:相信大家也会又同样的困扰,手机经常收到各种短信,其中不乏很多垃圾短信.此时只要设置这类短信为垃圾短信手机就会自动进行屏蔽.减少被骚扰的次数,同时 ...

  10. 利用计算机语言实现ID3算法,机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf...

    机器学习之决策树学习-id3算法-原理分析及c语言代码实现.pdf 还剩 23页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保 ...

最新文章

  1. ONVIF测试方法及工具
  2. matlab imcrop 对应python函数_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】
  3. python与办公自动化-用 Python 自动化办公,我与大神之间的差距一下就
  4. Nboot中nand flash控制器参数TACLS、TWRPH0和TWRPH1的确定(基于K9F1208U0B)
  5. py-faster-rcnn源码解读系列
  6. C/Cpp / const 用法
  7. LC3视角:Kubernetes下日志采集、存储与处理技术实践
  8. 01-python进阶-拾遗
  9. GitHub上最火的40个Android开源项目(一)
  10. clickhouse聚合函数之groupBitmap
  11. java与自动化的应用实例_自动化测试中java多线程的使用实例
  12. 开源真实场景图像检测数据集汇总
  13. 中国农田生产潜力数据集
  14. 前端操作复制粘贴板(clicpboardData )
  15. myeclipse当前页面的脚本发生错误问题
  16. aop:aspectj-autoproxy /的作用
  17. Vuepress-theme-reco 构建静态网页错误:在格式错误时超出了最大调用堆栈大小
  18. protobuf篇:介绍、安装、测试
  19. 用python解矩阵方程_用Python的Numpy求解线性方程组
  20. Ubuntu 安装 SSH 服务

热门文章

  1. FPS通用的方框透视公式的原理
  2. 视频教程-思科CCNP专题系列③:OSPF路由协议-思科认证
  3. 计算机软硬件的组成及主要技术指标,计算机软硬件系统的组成及主要技术指标...
  4. 网工浓缩笔记以及考点(第七章 网络安全)
  5. 计算机中的根源证书是什么,安全证书过期怎么办
  6. linux的百度网盘客户端
  7. 魔兽争霸3-游戏简单剖析 No.2 物品
  8. 【算法系列】-开根号
  9. Hadoop和Hbase版本选择
  10. 汽车车载电子设备可靠性标准及项目汇总