decision tree
决策树(DT)是一种用于分类和回归的非参数监督学习方法。 包含一个根结点、若干个内部结点和若干叶结点。根结点和内部结点代表用于划分的属性测试,叶结点代表决策结果。每个结点包含的样本集合根据属性测试被划分到子结点中,根结点包含样本全集。
基本流程遵循简单直观的分而治之(divide and conquer)策略:选择最优属性,划分,递归进行。
休息一下:
“分而治之”(divide and conquer)这词语总是看到,第一次是在sort algorithm那里,计算复杂度
三种情况递归返回:
(1)当前结点包含样本全属于同一类别,无需划分
(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
(3)当前结点包含的样本集合为空,不能划分
情形(2)是在利用当前结点的后验分布,情形(3)是把父结点的样本分布作为当前结点的先验分布。
我们希望决策树的分支结点所包含样本尽可能属于同一类别,信息熵(information entropy)是度量样本集合纯度最常用的指标,样本集合
用属性
但信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的C4.5决策树算法使用增益率(gain ratio)
增益率对可能值数目较少的属性有所偏好,使用启发式算法:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
CART决策树使用基尼指数(Gini index)来选择划分属性。
剪枝处理
剪枝(pruning)是决策树学习算法对付过拟合的主要手段,基本策略有预剪枝(prepruning)和后剪枝(post-pruning)。
预剪枝是在决策树生成过程中,对每个结点在划分前先进行估计,若划分不能使泛化性能得到提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上对非叶结点进行考察,若子树换位叶结点提升泛化性能则替换。
- 验证集,训练集
- 若不进行划分,类被标记为训练样例数最多的类别
- 预剪枝基于贪心本质禁止这些分支展开,给预剪枝决策树带来欠拟合风险
- 后剪枝决策树通常比预剪枝决策树保留更多分支,欠拟合性能小,泛化性能更优,但是训练时间开销大
连续和缺失值
对连续属性
与离散属性不同,若当前结点划分属性为连续属性,该属性可作为其后代结点的划分属性。
对于缺失值:
(1)如何在属性值缺失的情况下进行划分属性选择?
令
(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?
为每个样本
若样本属性值未知,同时划入所有子结点,并将样本权值在属性值
多变量决策树
决策树形成边界直观特点是分类边界由若干个与坐标轴平行的分段组成。多变量决策树可以由属性的线性组合构成,可以用斜边划分边界。