ID3 详解及源码

详解引自不知名字的ppt

决策树概念

决策树是用样本的属性作为结点,用属性的取值作为分支的树结构。
决策树的根结点是所有样本中信息量最大的属性。树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶结点是样本的类别值。
决策树是一种知识表示形式,它是对所有样本数据的高度概括。
决策树能准确地识别所有样本的类别,也能有效地识别新样本的类别。
 

一、ID3方法基本思想

首先找出最有判别力的属性,把样例分成多个子集,每个子集又选择最有判别力的属性进行划分,一直进行到所有子集仅包含同一类型的数据为止。最后得到一棵决策树。
J.R.Quinlan的工作主要是引进了信息论中的信息增益,他将其称为信息增益(information gain),作为属性判别能力的度量,设计了构造决策树的递归算法。
 

二、ID3算法

      ⒈ 对当前例子集合,计算各属性的信息增益;

      ⒉ 选择信息增益最大的属性Ak;

      ⒊ 把在Ak处取值相同的例子归于同一子集,Ak取几个值就得几个子集;

      ⒋ 对既含正例又含反例的子集,递归调用建树算法;

      ⒌ 若子集仅含正例或反例,对应分枝标上P或N,返回调用处。

 

⒈ 信息熵的计算

     信息熵:

信息增益的计算公式:

 

其中A是属性,Value(A)是属性A取值的集合,v是A的某一属性值,Sv是S中A的值为v的样例集合,| Sv |为Sv中所含样例数。

代码ID3

代码说明

代码非常的不健壮,如果像微软说的this is my baby, 我还得加句话,but it's weak,就像所有的父亲一样,希望大家对他好点,这个代码非常的不健壮,甚至输入格式要求都很高,但是基本功能都实现了,谢谢,欢迎高人赐教

原文地址:https://www.cnblogs.com/eavn/p/1882495.html