1 递归生成决策树
TreeGenerate(D,A):
生成结点node
(1)当前结点包含的样本属于同一类别无需划分,直接返回该类型。
(2)当前样本属性集为空,或是所有样本在所有属性上取值相同,无法划分,将其叶结点标记为样本最多的类别。
(3)当前结点包含的样本集为空,无法划分,将该结点标记为叶结点且其类别标记为父结点包含的样本最多的类别
(4)从属性集A中选择最优划分属性a:
for a的每一个取值ai:
对该结点生成一个分支
if a的取值ai对应的样本集合Dv为空:
将其分支结点标记为叶结点,其类别标记为总样本集D中样本最多的类
else:
以TreeGenerate(Dv,A\{a}) 为分支结点。
2 最优属性划分
(1)信息熵:度量样本集合纯度的一种指标,值越小纯度越高:
(2)信息增益:信息增益越大意味着用该属性划分带来的纯度提升越大:
偏好可取值较多的属性。ID3算法
(3)信息增益率:增益率越大用其划分得到的纯度提升越大,一般先选取信息增益高于平均水平的属性,再从中选取增益率最高的属性:
偏好取值较少的属性,C4.5算法
(4)基尼系数:Gini(D)直观反映从数据集D随机抽取两个样本,其类别标记不一致的概率,其越小纯度越高:
选取基尼系数最小的属性为最优划分属性,CART算法
3 剪枝处理
(1)预剪枝:基于贪心策略,在决策树生成过程判断:若当前结点划分不能带来性能提升则将其标记为叶结点。优点:开销较小;缺点:欠拟合风险大。
(2)后剪枝:决策树生成后,自底向上遍历非叶结点,判断将其剪掉后是否会提升性能,若能则标记其为叶结点。优点:欠拟合风险小,一般性能较好;缺点:开销大