决策树之训练过程在于建树,树结构的建立过程是递归的,关键步骤是选择属性进行划分数据集,选择划分的策略引出了各种版本决策树,ID3、C4.5和CART,其中前两种基于信息论,CART采用GINI系数对属性进行划分。编写决策树之前首先需要明确决策树的结构特点:
1、叶子节点是样本(用这类样本计算标签值,回归树用这个单元中的样本计算输出值,然后联合多个单元中的输出值和权重计算总的回归值)
2、非叶节点是数据集的属性名称,回归树里是该属性判断条件(特征名称或features)
3、所有属性的值是树枝,回归树里树枝是判断条件是否成立的yes或no
需要明了的是我们并不需要树来保存数据集,只需要保存数据集的属性名称和每个属性的值,最终得出标签即可。因此若要分析树的复杂度,应该是和属性及属性值的多少有关的。
(周志华老师西瓜书73页)
通过递归,不断的选择属性通过属性的值将数据集划分为不同的子集。(编写算法的时候头脑中要有清晰的手动切分数据集的映像才行),整个算法伪代码其实就是要编写的递归主函数。周志华老师西瓜书75页算法:
ID3算法为例(其他算法也一样,只是选择标签的函数要改写&#