1. ID3 算法
1.1 算法流程
输入:训练数据集 D,特征集 A , 阈值 d
输出:决策树 T
- 如果 D 中所有实例都属于同一类,则 T 为单节点树,并将类别设置为该类,返回 T
- 如果 A 为空集,则 T 为单结点树,并将 D 中实例数量最多的类设置为该结点的类别,返回 T
- 计算所有特征的信息增益,选择最大的特征 a
- 如果 a 的信息增益小于阈值 d,则设置 T 为单节点树,并将 D 中实例数量最多的类设置为该结点得类别并返回 T
- 对 a 的每一个可能值 分割数据集 D 得到子集 ,将所有子集中数量最多的子集所属的类别作为标记,然后构建子结点
- 对第 i 个子结点,以 为训练集,以 为特征集递归调用 1-5 步构建子树。
2. C4.5 算法
输入:训练数据集 D,特征集 A , 阈值 d
输出:决策树 T
- 如果 D 中所有实例都属于同一类,则 T 为单节点树,并将类别设置为该类,返回 T
- 如果 A 为空集,则 T 为单结点树,并将 D 中实例数量最多的类设置为该结点的类别,返回 T
- 计算所有特征的增益率,选择最大的特征 a
- 如果 a 的增益率小于阈值 d,则设置 T 为单节点树,并将 D 中实例数量最多的类设置为该结点得类别并返回 T
- 对 a 的每一个可能值 分割数据集 D 得到子集 ,将所有子集中数量最多的子集所属的类别作为标记,然后构建子结点
- 对第 i 个子结点,以 为训练集,以 为特征集递归调用 1-5 步构建子树。