1.ID3算法:
是一种分治法,
算法输入:训练样本,各属性取离散值,可供归纳的候选属性集为:attribute_list。
输出:决策树
Gnerate_decision_tree
流程:
1》创建一个节点N;
2》如果该节点中所有样本均为同一类C,则
3》 返回N作为一个叶子节点并标识为C类;
4》如果attribute_list为空,则
5》 返回N作为一个叶子节点并标识该节点所含样本中类别个数最多的类别;
6》从attribute_list中选择一个信息增益最大的属性test_attribute;
7》并将节点N标记为test_attribute;
8》对于test_attribute中每一个已知取值ai,准备划分节点N所包含的样本集;
9》根据test_attribute=ai条件,从节点N产生分支,以表示该测试条件;
10》设si是test_attribute=ai条件所获得的样本集;
11》若si为空,则将相应叶节点标记为该节点所包含样本中类别个数最多的类别;
12》 否则,返回相应叶节点标识为Gnerate_decision_tree(si,attribute_list-test_attribute)返回值;
2.C4.5算法
C4.5算法是对ID3算法的改进,改进之处在于:
1》训练集的属性可以是连续值;
2》选择判别属性的方法是信息增益率;
3》后剪枝方法的处理。
3.J48源码简要分