算法
ID3算法
$\qquad$ 输入:训练数据集 $D$,特征集 $A$,阈值 $\epsilon$;
$\qquad$ 输出:决策树 $T$。
$\qquad$ (1) 若 $D$ 中所有实例属于同一类 $C_k$,则 $T$ 为单结点树,并将类 $C_k$ 作为该节点的类标记,返回 $T$;
$\qquad$ (2) 若 $A=\varnothing$,则 $T$ 为单结点树,并将 $D$ 中实例数最大的类 $C_k$ 作为该节点的类标记,返回 $T$ ;
$\qquad$ (3) 否则,计算 $A$ 中各特征对 $D$ 的信息增益,选择信息增益最大的特征 $A_g$;
$\qquad$ (4) 如果 $A_g$ 的信息增益小于阈值 $\epsilon$,则置 $T$ 为单节点树,并将 $D$ 中实例数最大的类 $C_k$ 作为该节点的类标记,返回 $T$;
$\qquad$ (5) 否则,对 $A_g$中的每一可能值 $a_i$,依 $A_g=a_i$ 将 $D$ 分割为若干非空子集 $D_i$,将 $D_i$ 中实例最大的类作为标记,构建子结点,由结点及其子结点构成树 $T$,返回 $T$;
$\qquad$ (6) 对第 $i$ 个子结点,以 $D_i$ 为训练集,以 $A-{A_g}$ 为特征集,递归地调用步(1)~步(5),得到子树 $T_i$,返回 $T_i$。
C4.5算法
$\qquad$ 将 ID3 中信息增益换位信息增益比即为C4.5