ID3算法
来源:互联网 发布:mac苹果商店打不开 编辑:程序博客网 时间:2024/04/30 19:51
ID3算法是J. RossQuinlan在1975提出的分类预测算法,当时还没有数据挖掘吧,哈哈哈。该算法的核心是“信息熵”,属于数学问题,我也是从这里起发现数据挖掘最底层最根本的不再是编程了,而是数学,编程只是一种实现方式而已,数学才是基础,如:朴素贝叶斯分类,小波聚类,尤其是我正在搞的支持向量机,它就是高等代数,空间解析几何,概率统计的综合应用。记得读本科时,朱琛学姐说过,数学学得再好也不为过。我现在深刻体会到了。
共14条记录,目标属性是,是否买电脑,共有两个情况,yes或者no。参考属性有4种情况,分别是,age,income,student,credit_rating。属性age有3种取值情况,分别是,youth,middle_aged,senior,属性income有3种取值情况,分别是,high,medium,low,属性student有2种取值情况,分别是,no,yes,属性credit_rating有2种取值情况,分别是fair,excellent。我们先求目标属性的信息熵:
,式中的5表示5个no,9表示9个yes,14是总的记录数。接下来我们求各个参考属性在取各自的值对应目标属性的信息熵,以属性age为例,有3种取值情况,分别是youth,middle_aged,senior,先考虑youth,youth共出现5次,3次no,2次yes,于是信息熵:
类似得到middle_aged和senior的信息熵,分别是:0和0.971。整个属性age的信息熵应该是它们的加权平均值:
。下面引入信息增益(informationgain)这个概念,用Gain(D)表示,该概念是指信息熵的有效减少量,该量越高,表明目标属性在该参考属性那失去的信息熵越多,那么该属性越应该在决策树的上层(如果不好理解,可以用极限的方法,即假如在age属性上,当为youth时全部是on,当为middle时也全部是no,当为senior时全不是yes,那么Hage(D)=0)。,类似可以求出Gain(income)=0.029,Gain(stduent)=0.151,Gain(credit_rating)=0.048。最大值为Gain(age),所以首先按照参考属性age,将数据分为3类,如下:
然后分别按照上面的方法递归的分类。递归终止的条件是,1,当分到某类时,目标属性全是一个值,如这里当年龄取middle_aged时,目标属性全是yes。2,当分到某类时,某个值的比例达到了给定的阈值,如这里当年龄取youth时,有60%的是no,当然实际的阈值远远大于60%。
- id3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- ID3算法
- 《网络协议》TCP 的交互数据流
- 万事皆缘,随遇而安
- 32位汇编语言学习笔记(13)--函数的调用
- android开发的省市区三级联动的实现
- 浅谈Spring(三)AOP原理
- ID3算法
- C# where用法
- ActionBar-PullToRefresh 学习之导入到Eclipse
- vijos1327 回文词
- API Sanity Checker在Ubuntu中的使用
- 由数字式子生成对应的二叉树
- Linux中POSIX文件锁的实现
- 一些图像变换1402,旋转、缩放、二值化、边界涂黑等
- hdu1501——Zipper