有关信息增益的定义以及具体的计算方法和实例,可以参考马瑜和王有刚的论文《ID3算法应用研究》的第1、2两节。
ID3算法思想描述如下:
(1) 初始化决策树T为只含一个树根(X,Q),其中X是全体样本集,Q为全体属性集。
(2) if(T中所有叶节点(X’,Q’)都满足X属于同一类或Q’为空)then 算法停止;
(3) else
{任取一个不具有(2)中所述状态的叶节点(X’,Q’);
(4) for each Q’中的属性A do 计算信息增益gain(A,X’);
(5) 选择具有最高信息增益的属性B作为节点(X’,Q’)的测试属性;
(6) for each B的取值bi do
{从该节点(X’, Q’)伸出分支,代表测试输出B=bi;
求得X中B值等于bi的子集Xi,并生成相应的叶节点(Xi’,Q’-{B});}
(7) 转(2);}
ID3算法是决策树的一个经典的构造算法,在一段时期内曾是同类研究工作的比较对象,但通过近些年国内外学者的研究,ID3算法也暴露出一些问题,具体如下:
(1)信息增益的计算依赖于特征数目较多的特征,而属性取值最多的属性并不一定最优。
(2)ID3是非递增算法。
(3)ID3是单变量决策树(在分枝节点上只考虑单个属性),许多复杂概念的表达困难,属性相互关系强调不够,容易导致决策树中子树的重复或有些属性在决策树的某一路径上被检验多次。
(4)抗噪性差,训练例子中正例和反例的比例较难控制。
于是Quilan改进了ID3,提出了C4.5算法。C4.5算法现在已经成为最经典的决策树构造算法,排名数据挖掘十大经典算法之首.