ID3算法

来源:互联网 发布:anything搜索软件 编辑:程序博客网 时间:2024/04/30 20:56

ID3是数据挖掘分类中的一种(是一种if-then的模式),其中运用到熵的概念,表示随机变量不确定性的度量

H(x)=-∑pi *log pi

信息增益是指特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差

g(D,A)=H(D)-H(D|A)

其中H(Y|X)=∑pi H(Y|X=xi)

Pi=P(x=xi)

ID3 是一种自顶向下增长树的贪婪算法,在每个结点选取能最好地分类样例的属性。继续这个过程直到这棵树能完美分类训练样例,或所有的属性都使用过了。

ID3算法流程

ID3(Examples,Target_attribute,Attributes)
Examples 即训练样例集。Target_attribute 是这棵树要预测的目标属性。Attributes
是除目标属性外供学习到的决策树测试的属性列表。返回能正确分类给定
Examples 的决策树。
  创建树的 Root 结点
  如果 Examples 都为正,那么返回 label =+ 的单结点树 Root
 如果 Examples 都为反,那么返回 label =- 的单结点树 Root
  如果 Attributes 为空,那么返回单结点树 Root,label=Examples 中最普遍的
Target_attribute 值
  否则
  A←Attributes 中分类 Examples 能力最好*的属性
 Root 的决策属性←A
 对于A的每个可能值v
 在Root下加一个新的分支对应测试A= vi
 令Examples vi 为Examples中满足A属性值为v i的子集
 如果的子集Examples vi 为空在这个新分支下加一个叶子结点,结点的 label=Examples vi
中最普遍的 Target_attribute 值
 否则在这个新分支下加一个子树 ID3(Examples vi ,Target_attribute, Attributes-{A})
 结束
 返回 Root

其主要代码如下

View Code

计算信息增益

View Code

若使用C4.5就会使用信息增益比

View Code

ID3 : 归纳偏置的更贴切近似:较短的树比较长的得到优先。那些信息增益高的属性
更靠近根结点的树得到优先

 

0 0